Connexion à MySQL dans un conteneur Docker à partir de l'hôte
Description du problème :
Quand en essayant de vous connecter à une base de données MySQL exécutée dans un conteneur Docker à partir de la machine hôte, un message d'erreur s'affiche : "Impossible de se connecter au serveur MySQL local via le socket '/var/run/mysqld/mysqld.sock'".
Dockerfile :
Le Dockerfile suivant est utilisé pour créer le conteneur MySQL :
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
Tentatives infructueuses :
Malgré le succès démarrer l'instance MySQL dans le conteneur, s'y connecter depuis l'hôte avec mysql -P 12345 -uroot entraîne l'erreur de socket.
Solution :
Pour se connecter à la base de données MySQL exécutée dans le conteneur Docker depuis la machine hôte, les étapes suivantes sont nécessaires :
Commande pour l'hôte Connexion :
mysql -h localhost -P 3306 --protocol=tcp -u root
Modification du port :
Si un port différent est utilisé pour exposer l'instance MySQL dans le conteneur Docker (par exemple, 12345) , il doit également être spécifié dans la commande de connexion :
mysql -h localhost -P 12345 --protocol=tcp -u root
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!