Rumah >pangkalan data >tutorial mysql >Mengapa 'Akses Ditolak' Berlaku untuk Pengguna MySQL Root Walaupun MYSQL_ROOT_PASSWORD Ditetapkan dalam Docker?

Mengapa 'Akses Ditolak' Berlaku untuk Pengguna MySQL Root Walaupun MYSQL_ROOT_PASSWORD Ditetapkan dalam Docker?

DDD
DDDasal
2024-12-20 08:20:11405semak imbas

Why Does

MySQL_ROOT_PASSWORD Ditetapkan, Tetapi Akses Ditolak untuk Pengguna 'root'@'localhost' (menggunakan Kata Laluan: YES)

Dalam persekitaran MySQL yang dilabuhkan , menetapkan pembolehubah persekitaran MYSQL_ROOT_PASSWORD tidak mencukupi untuk memastikan akses kepada pangkalan data. Ini kerana imej tidak akan memulakan pangkalan data baharu jika volum db_data sudah mengandungi pemasangan sedia ada.

Penyelesaian masalah:

  1. Semak sama ada pangkalan data sudah dimulakan dalam volum db_data: Jika anda memulakan bekas dengan volum sedia ada, pembolehubah persekitaran tidak akan mempunyai kesan dan pangkalan data tidak akan dimulakan.
  2. Padamkan volum db_data untuk memaksa pemula:

    • Jalankan docker-compose down -v untuk mengalih keluar volum sedia ada.
    • Jalankan docker-compose up -d untuk memulakan bekas dengan volum baharu dan mulakan pangkalan data.
  3. Tukar kepada bind mount jika mahu:

    • Selepas memulakan pangkalan data, anda boleh tukarkan volum kepada bind mount dengan menukar bahagian volum dalam docker-compose.yml kepada:

      volumes:
         - /host/path/to/db_data:/var/lib/mysql
    • Padamkan kandungan lokasi pelekap bind sebelum memulakan bekas: rm -rf /host/path/to/db_data/*
  4. Semak potensi lain isu:

    • Pastikan pembolehubah MYSQL_ROOT_PASSWORD ditetapkan dengan betul.
    • Periksa tetapan firewall untuk memastikan port 3306 dibuka.
    • Sahkan bahawa Perkhidmatan MySQL sedang berjalan dalam bekas.

Atas ialah kandungan terperinci Mengapa 'Akses Ditolak' Berlaku untuk Pengguna MySQL Root Walaupun MYSQL_ROOT_PASSWORD Ditetapkan dalam Docker?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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