Rumah > pangkalan data > tutorial mysql > Mengapa My Docker MySQL Container Menolak Akses Walaupun Menetapkan MYSQL_ROOT_PASSWORD?

Mengapa My Docker MySQL Container Menolak Akses Walaupun Menetapkan MYSQL_ROOT_PASSWORD?

Barbara Streisand
Lepaskan: 2024-12-03 09:05:11
asal
456 orang telah melayarinya

Why Does My Docker MySQL Container Deny Access Despite Setting MYSQL_ROOT_PASSWORD?

Akses Ditolak ke MySQL dalam Docker Container Walaupun Menetapkan MYSQL_ROOT_PASSWORD

Pengenalan

Percubaan untuk mengakses pangkalan data MySQL dalam Docker bekas boleh menghasilkan ralat akses yang dinafikan, walaupun ketika root kata laluan telah ditetapkan melalui pembolehubah persekitaran MYSQL_ROOT_PASSWORD. Isu ini boleh timbul disebabkan oleh salah faham tentang kesan data pangkalan data sedia ada pada pemula.

Masalah

Semasa permulaan kontena, jika volum dipetakan ke pangkalan data direktori data (db_data dalam kes ini) sudah mengandungi sistem fail pangkalan data, bekas akan menghormati pangkalan data sedia ada dan mengabaikan sebarang pembolehubah persekitaran yang berkaitan dengan permulaan, termasuk MYSQL_ROOT_PASSWORD. Akibatnya, percubaan untuk mengakses pangkalan data dengan bukti kelayakan yang dikonfigurasikan akan gagal.

Penyelesaian

Untuk menyelesaikan isu ini, pastikan anda memulakan bekas tanpa pra- volum pangkalan data sedia ada. Ini boleh dicapai dengan memadamkan volum data menggunakan arahan berikut:

docker-compose down -v
Salin selepas log masuk

Selepas itu, bawa bekas itu ke atas semula dengan arahan docker-compose up -d. Proses ini akan memadamkan kandungan pangkalan data sedia ada dan memulakan pangkalan data baharu dengan kata laluan akar yang ditentukan disimpan dalam MYSQL_ROOT_PASSWORD.

Nota: Berhati-hati kerana arahan di atas akan memadamkan sebarang data yang sedia ada secara kekal dalam volum db_data. Jika anda ingin mengekalkan data ini, buat sandaran sebelum melaksanakan arahan ini.

Alternatif untuk Bind Mounts

Jika menggunakan bind mount, keluarkan kandungannya secara manual dengan menavigasi ke laluan bind mount dan melaksanakan yang berikut:

rm -rf /path/to/bind/mount/*
Salin selepas log masuk

Lain-lain Maklumat Berkaitan

Pendekatan ini boleh digunakan pada imej docker MySQL. Walau bagaimanapun, perlu diingat bahawa imej docker pangkalan data rasmi yang lain, termasuk untuk PostgreSQL dan MongoDB, mematuhi proses pemula yang serupa dan mungkin mengalami isu yang sama apabila menggunakan volum data sedia ada.

Atas ialah kandungan terperinci Mengapa My Docker MySQL Container Menolak Akses Walaupun Menetapkan MYSQL_ROOT_PASSWORD?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan