Hubungkan meja kerja MySQL dengan wadah MySQL

9

Saya menarik wadah MySQL dari Dockerhub dan sedang berjalan di macbook pro saya seperti yang Anda lihat sebagai berikut

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
12cd3deaa3f0        mysql:latest        "/entrypoint.sh mysql"   47 hours ago        Up 10 minutes       3306/tcp            mysqldb

Kemudian saya mengunduh meja kerja MySQL dan saya mencoba menghubungkannya dengan wadah MySQL, tetapi tidak berhasil. Ini menunjukkan kesalahan koneksi.

Your connection attempt failed for user 'root' from your host to server at 192.168.99.102:3306:
Can't connect to MySQL server on '192.168.99.102' (60)

IP dari mesin docker adalah

docker-machine ip default
192.168.99.100

dan port dari MySQL adalah 3306 seperti yang Anda lihat di atas.

Untuk mengekspor port MySQL, saya mencoba dengan pernyataan itu

docker run -d -P mysql:latest mysqldb

Itu tidak bekerja sama sekali. Apa yang saya lakukan salah?

zero_coding
sumber

Jawaban:

9

Sepertinya Anda menjalankan wadah tanpa mengatur -p 3306:3306parameter. Selain itu, tampaknya Anda salah mengetik alamat IP dalam Hostname di MySQL Workbench. Saya sarankan mulai dari awal dengan mengikuti instruksi ini:

  1. Jalankan server mysql. (Ubah kata sandi adminuntuk apa pun yang Anda inginkan)

docker run -e MYSQL_ROOT_PASSWORD=admin --name mysql -d -p=3306:3306 mysql

  1. dapatkan alamat IP dari mesin virtual docker default dengan menjalankan

docker-machine ip default

  1. Salin alamat IP yang akan Anda dapatkan sebagai hasil dari perintah sebelumnya. (dalam kasus Anda, seharusnya 192.168.99.100)
  2. Buka MySQL Workbench dan buat koneksi baru. Rekatkan alamat IP yang Anda salin ke bidang "Hostname".

Anda harus siap sekarang.

Fikra
sumber
1

Parameter ini -Pmengikat port yang diekspor dari wadah secara otomatis ke port host yang tersedia.

Perintah berikut harus mengikat port container 3306 ke port 3306 host. Lihat: Menerbitkan atau mengekspos port

docker run -d -p 3306:3306 mysql:latest mysqldb

sumber
Saya mengetik pernyataan docker run -d -p 3306:3306 mysql:5.7.9 dbmysqldan sebagai output saya punya d38a0f208bcda50132d7f6f679c9282b0d90b275610b8d19ac93bf82d94eea43tetapi masih tidak dapat mengakses wadah mysql dengan workbench mysql. Ketika saya mengetik ps buruh pelabuhan itu menunjukkan sayad6b44992ec77 mysql:5.7.9 "/entrypoint.sh mysql" About a minute ago Up About a minute 3306/tcp dbmysql
zero_coding