Masalah:
Anda telah menetapkan MYSQL_ROOT_PASSWORD dalam fail Docker docker-compose.yml anda, tetapi apabila anda cuba menyambung ke pangkalan data MySQL, anda menerima ralat "Akses ditolak untuk pengguna 'root'@'localhost' (menggunakan kata laluan: YES)."
Punca:
Punca yang paling mungkin ialah anda memulakan bekas MySQL anda terhadap volum sedia ada yang sudah mengandungi sistem fail pangkalan data MySQL. Dalam kes ini, tiada pembolehubah persekitaran, termasuk MYSQL_ROOT_PASSWORD, akan mempunyai sebarang kesan.
Penyelesaian:
Untuk bermula dari awal dan memulakan bekas anda, anda perlu padamkan volum data sedia ada dan mulakan bekas dengan yang baharu. Ini akan memadamkan mana-mana pangkalan data sebelumnya dalam jumlah data, jadi pastikan anda membuat sandaran jika perlu.
Langkah:
Maklumat Tambahan:
Isu ini tidak terhad kepada imej docker MySQL. Banyak imej docker rasmi untuk pangkalan data (cth., PostgreSQL, MongoDB) berfungsi dengan cara yang sama. Oleh itu, jika anda menghadapi masalah ini dengan pangkalan data lain, penyelesaian untuk memadamkan volum data dan memulakan bekas dari awal mungkin akan digunakan.
Atas ialah kandungan terperinci Mengapa Kontena MySQL Docker Saya Menunjukkan 'Akses Ditolak' Walaupun Menetapkan `MYSQL_ROOT_PASSWORD`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!