Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Menyambung ke Kontena MySQL Docker dari Mesin Hos Saya?
Masalah:
Mewujudkan sambungan kepada instance MySQL yang berjalan dalam bekas Docker daripada sistem hos terbukti tidak berjaya, mengakibatkan ralat 2002.
Butiran Fail Docker:
Fail Docker yang digunakan termasuk konfigurasi berikut:
FROM ubuntu:14.04.3 RUN apt-get update && apt-get install -y mysql-server RUN grep -v bind-address /etc/mysql/my.cnf > temp.txt && mv temp.txt /etc/mysql/my.cnf EXPOSE 3306 CMD /etc/init.d/mysql start && tail -F /var/log/mysql.log
Semasa imej dimulakan tanpa masalah, cuba menyambung dari hos menggunakan perintah mysql -P 12345 -uroot menghasilkan yang disebutkan di atas ralat.
Penyelesaian:
Spesifikasi Sambungan:
Untuk menyambung ke contoh MySQL dalam bekas Docker, ia adalah diperlukan untuk menyediakan parameter yang betul apabila menggunakan arahan mysql dari hos:
mysql -h localhost -P 3306 --protocol=tcp -u root
Di sini, -h localhost menentukan hos, -P 3306 menetapkan port (dalam kes ini, 12345), dan --protocol=tcp menunjukkan bahawa sambungan harus diwujudkan melalui TCP/ IP dan bukannya sambungan soket.
Soket Had:
Dalam bekas Docker, MySQL mengikat semua antara muka rangkaian, tidak termasuk localhost. Memandangkan sistem hos tidak boleh mengakses soket, adalah penting untuk menggunakan TCP/IP untuk komunikasi. Dengan menyatakan --protocol=tcp dalam arahan mysql, sambungan berjaya dibuat melalui port 3306.
Atas ialah kandungan terperinci Bagaimanakah Saya Menyambung ke Kontena MySQL Docker dari Mesin Hos Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!