Penyelesaian kepada kegagalan docker untuk menyambung ke mysql: 1. Semak bekas yang sedang berjalan melalui arahan "docker ps" 2. Jalankan "docker exec -it b30062adc08c /bin/bash" untuk memasuki bekas mysql; ; 3. Masukkan perintah " mysql -u root -p" 4. Mulakan semula mysql, dan kemudian gunakan navicat untuk menyambung dengan jayanya.
Persekitaran pengendalian tutorial ini: sistem linux7.3, docker versi 19.03, komputer Dell G3.
Apakah yang perlu saya lakukan jika docker gagal menyambung ke mysql?
Penyelesaian kepada kegagalan dalam menyambung ke mysql dalam docker
Senario: Selepas memasang versi terkini mysql dalam bekas docker mesin maya, gunakan navicat dalam hos untuk menyambung ke mesin maya. Mysql memaparkan ralat berikut:
2059: Pemalam pengesahan 'caching_sha2_password' tidak boleh dimuatkan:
Penyelesaian:
1. Pertama, gunakan arahan docker ps untuk menyemak bekas yang sedang berjalan dan pastikan mysql yang ingin kita sambungkan telah bermula , gunakan arahan docker start untuk memulakannya (lihat hasil dalam gambar di bawah) Menunjukkan bahawa mysql telah dimulakan)
2. Kemudian jalankan docker exec -it b30062adc08c /bin/bash untuk memasukkan bekas mysql
3 Kemudian masukkan perintah mysql -u root -p, kemudian masukkan kata laluan anda sendiri, dan akhir sekali masukkan penyata kata laluan kemas kini :
UBAH PENGGUNA 'root'@'%' DIKENALPASTI DENGAN mysql_native_password OLEH '123456';
4 mysql dan gunakan navicat untuk menyambung dengan jayanya
Pengetahuan tambahan: Penyelesaian kepada ralat MySQL dalam sambungan jauh tempatan Docker ( 1251)
Ralat adalah seperti berikut:
Punca: mysql 8.0 menggunakan mekanisme pengesahan cache_sha2_password secara lalai; kaedah penyulitan baharu
Penyelesaian: Ubah suai kaedah penyulitan pengguna (root)
1 Masukkan ke dalam bekas mysql dan masukkan
docker exec -it mysql02 bash
2. Log masuk ke mysql
mysql -u root -p
Masukkan 123456 seperti yang ditunjukkan dalam gambar dan tekan Enter
3 Tetapkan item konfigurasi pengguna
(1) Lihat maklumat pengguna
pilih hos,pengguna,plugin,rentetan_pengesahan daripada mysql.user;
(2) Ubah suai kaedah penyulitan
UBAH 'root' PENGGUNA @'%' DIKENALPASTI DENGAN mysql_native_password OLEH '123456'; //123456 ialah kata laluan log masuk untuk mysql
(3) Semak maklumat pengguna sekali lagi
pilih hos,pengguna ,plugin,authentication_string from mysql.user;
(4 ) Gunakan perisian pangkalan data seperti Navicate untuk menyambung semula dan berjaya
(5)Tambahan: Jika anda ingin keluar seperti biasa tanpa menutup bekas, Anda boleh keluar dari bekas dengan menekan Ctrl P Q
Keluar dari bekas dari mysql: Ctrl D, tekan dua kali
Pembelajaran yang disyorkan: "tutorial video docker"
Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika docker gagal menyambung ke mysql?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!