Connecter le plan de travail MySQL au conteneur MySQL

9

J'ai retiré le conteneur MySQL de Dockerhub et il fonctionne sur mon macbook pro comme vous pouvez le voir comme suit

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

Ensuite, j'ai téléchargé le plan de travail MySQL et j'ai essayé de le connecter avec le conteneur MySQL, mais cela ne fonctionne pas. Il montre une erreur de connexion.

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)

L'IP de la machine docker est

docker-machine ip default
192.168.99.100

et le port de MySQL est 3306 comme vous pouvez le voir ci-dessus.

Pour exporter le port MySQL, j'ai essayé avec la déclaration

docker run -d -P mysql:latest mysqldb

Ca ne fonctionne pas du tout. Qu'est-ce que je fais mal?

zero_coding
la source

Réponses:

9

Il semble que vous ayez exécuté le conteneur sans définir le -p 3306:3306paramètre. En outre, il semble que vous ayez mal tapé l'adresse IP dans le nom d'hôte dans MySQL Workbench. Je recommande de recommencer à zéro en suivant ces instructions:

  1. Exécutez le serveur mysql. (Remplacez le mot adminde passe par ce que vous voulez)

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

  1. obtenir l'adresse IP de la machine virtuelle docker par défaut en exécutant

docker-machine ip default

  1. Copiez l'adresse IP que vous obtiendrez à la suite de la commande précédente. (dans votre cas, il doit s'agir de 192.168.99.100)
  2. Ouvrez MySQL Workbench et créez une nouvelle connexion. Collez l'adresse IP que vous avez copiée dans le champ "Hostname".

Vous devriez être prêt maintenant.

Fikra
la source
1

Le paramètre -Plie automatiquement les ports exportés d'un conteneur aux ports disponibles de l'hôte.

La commande suivante doit lier le port de conteneurs 3306 au port 3306 de l'hôte. Voir: Publier ou exposer un port

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

la source
J'ai tapé l'instruction docker run -d -p 3306:3306 mysql:5.7.9 dbmysqlet en tant que sortie, j'ai, d38a0f208bcda50132d7f6f679c9282b0d90b275610b8d19ac93bf82d94eea43mais je ne peux toujours pas accéder au conteneur mysql avec mysql workbench. Lorsque j'ai tapé docker ps, cela me montred6b44992ec77 mysql:5.7.9 "/entrypoint.sh mysql" About a minute ago Up About a minute 3306/tcp dbmysql
zero_coding