web-dev-qa-db-fra.com

Connecter le plan de travail MySQL au conteneur MySQL

J'ai tiré 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?

9
zero_coding

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

  1. Exécutez le serveur mysql. (Modifiez le mot de passe admin en 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.

9
Fikra

Le paramètre -P lie les ports exportés d'un conteneur automatiquement 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 le port

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