Rumah > Artikel > Operasi dan penyelenggaraan > Apakah yang perlu saya lakukan jika docker tidak dapat menyambung ke mysql?
Apabila menggunakan Docker untuk membina pangkalan data MySQL, anda kadangkala menghadapi masalah tidak dapat menyambung ke MySQL. Ini mungkin disebabkan oleh isu rangkaian, isu konfigurasi atau isu lain. Dalam artikel ini, kita akan membincangkan cara menyelesaikan masalah ini.
1. Semak sambungan rangkaian
Mula-mula, kita perlu memastikan bahawa sambungan rangkaian antara bekas Docker dan hos tempatan adalah normal, yang boleh dikesan melalui arahan ping. Buka terminal pada hos tempatan dan laksanakan arahan berikut:
$ ping <docker容器IP>
Antaranya,
Jika anda boleh melakukan ping seperti biasa, sambungan rangkaian adalah normal; jika anda tidak boleh melakukan ping, anda perlu menyelesaikan masalah rangkaian.
2. Semak konfigurasi bekas MySQL
Apabila sambungan rangkaian normal, kita perlu menyemak fail konfigurasi bekas MySQL. Jalankan arahan berikut:
$ docker exec -it <container ID> /bin/bash $ cd /etc/mysql $ cat my.cnf
Di mana,
Semak sama ada konfigurasi dalam fail my.cnf adalah betul, terutamanya untuk tetapan rangkaian.
3. Cipta pengguna MySQL dan benarkan
Jika konfigurasi bekas MySQL adalah normal, anda perlu menyemak sama ada pengguna MySQL yang sesuai telah dibuat dan dibenarkan.
Dalam bekas MySQL, laksanakan arahan berikut:
$ mysql -u root -p
Masukkan kata laluan root untuk memasuki konsol MySQL.
Laksanakan pernyataan sql berikut untuk mencipta pengguna:
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
Di mana 'nama pengguna' dan 'kata laluan' ialah nama pengguna dan kata laluan yang anda mahu cipta masing-masing.
Kemudian, beri kebenaran kepada pengguna:
GRANT ALL ON *.* TO 'username'@'%';
Di mana, 'nama pengguna' ialah nama pengguna yang baru anda buat.
Akhir sekali, laksanakan arahan berikut untuk menyimpan perubahan dan keluar dari konsol MySQL:
FLUSH PRIVILEGES; EXIT;
4. Semak tetapan firewall
Jika anda masih tidak dapat menyambung ke MySQL , ia mungkin disebabkan oleh masalah tetapan firewall. Kami perlu mengesahkan sama ada terdapat tembok api yang menyekat sambungan MySQL.
Laksanakan arahan berikut pada hos tempatan untuk mengesahkan sama ada port diduduki oleh tembok api:
$ sudo netstat -tunlp | grep <MySQL容器端口>
Di mana,
Jika port sudah diduduki, anda perlu mendayakan port tersebut. Mengambil sistem Ubuntu sebagai contoh, laksanakan arahan berikut untuk membuka port:
$ sudo ufw allow <MySQL容器端口>/tcp
di mana,
Jika ia adalah sistem pengendalian lain, anda perlu membuka port mengikut tetapan sistem pengendalian yang sepadan.
5. Mulakan semula bekas MySQL
Akhir sekali, jika empat langkah di atas tidak menyelesaikan masalah, maka kita boleh cuba memulakan semula bekas MySQL.
Anda boleh menggunakan arahan berikut untuk memulakan semula bekas MySQL:
$ docker restart <container ID>
Di mana,
Ringkasan
Masalah tidak dapat menyambung ke Docker MySQL mungkin disebabkan oleh banyak sebab, dan kita perlu menghapuskannya satu demi satu. Mula-mula sahkan sama ada sambungan rangkaian adalah normal, kemudian semak konfigurasi bekas MySQL, buat pengguna MySQL dan benarkannya, semak tetapan firewall, dan akhirnya cuba mulakan semula bekas MySQL. Jika tiada langkah di atas menyelesaikan masalah, anda boleh mempertimbangkan untuk menukar kepada imej MySQL yang lain atau mencari penyelesaian lain.
Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika docker tidak dapat menyambung ke mysql?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!