Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Menyambung ke Kontena MySQL Docker dari Mesin Hos Saya?

Bagaimanakah Saya Menyambung ke Kontena MySQL Docker dari Mesin Hos Saya?

DDD
Lepaskan: 2024-12-02 12:01:10
asal
861 orang telah melayarinya

How Do I Connect to a Docker MySQL Container from My Host Machine?

Menyambung ke Docker MySQL Container daripada Hos

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
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan