Verbinden Sie die MySQL-Workbench mit dem MySQL-Container

9

Ich habe den MySQL-Container aus Dockerhub gezogen und er läuft auf meinem MacBook Pro, wie Sie sehen können

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

Dann habe ich die MySQL-Workbench heruntergeladen und versucht, sie mit dem MySQL-Container zu verbinden, aber es funktioniert nicht. Es zeigt einen Verbindungsfehler.

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)

Die IP vom Docker-Computer ist

docker-machine ip default
192.168.99.100

und der Port von MySQL ist 3306, wie Sie oben sehen können.

Um den MySQL-Port zu exportieren, habe ich es mit der Anweisung versucht

docker run -d -P mysql:latest mysqldb

Es funktioniert überhaupt nicht. Was mache ich falsch?

zero_coding
quelle

Antworten:

9

Es sieht so aus, als hätten Sie den Container ausgeführt, ohne den -p 3306:3306Parameter festzulegen. Außerdem haben Sie anscheinend die IP-Adresse des Hostnamens in MySQL Workbench falsch eingegeben. Ich empfehle, von vorne zu beginnen, indem Sie die folgenden Anweisungen befolgen:

  1. Führen Sie den MySQL-Server aus. (Ändern Sie das Passwort adminnach Belieben)

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

  1. Rufen Sie die IP-Adresse der virtuellen Standard-Docker-Maschine ab, indem Sie sie ausführen

docker-machine ip default

  1. Kopieren Sie die IP-Adresse, die Sie als Ergebnis des vorherigen Befehls erhalten. (In Ihrem Fall sollte es 192.168.99.100 sein.)
  2. Öffnen Sie die MySQL Workbench und erstellen Sie eine neue Verbindung. Fügen Sie die IP-Adresse, die Sie kopiert haben, in das Feld "Hostname" ein.

Sie sollten jetzt fertig sein.

Fikra
quelle
1

Der Parameter -Pbindet die exportierten Ports eines Containers automatisch an die verfügbaren Ports des Hosts.

Der folgende Befehl sollte den Container-Port 3306 an den Port 3306 des Hosts binden. Siehe: Port veröffentlichen oder verfügbar machen

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

quelle
Ich habe die Anweisung eingegeben docker run -d -p 3306:3306 mysql:5.7.9 dbmysqlund als Ausgabe habe ich d38a0f208bcda50132d7f6f679c9282b0d90b275610b8d19ac93bf82d94eea43, kann aber immer noch nicht mit der MySQL-Workbench auf den MySQL-Container zugreifen. Wenn ich Docker ps eingegeben habe, zeigt es mird6b44992ec77 mysql:5.7.9 "/entrypoint.sh mysql" About a minute ago Up About a minute 3306/tcp dbmysql
zero_coding