Maison  >  Article  >  Opération et maintenance  >  Que dois-je faire si Docker ne parvient pas à se connecter à MySQL ?

Que dois-je faire si Docker ne parvient pas à se connecter à MySQL ?

PHPz
PHPzoriginal
2023-04-18 09:48:125750parcourir

Lorsque vous utilisez Docker pour créer une base de données MySQL, vous rencontrerez parfois le problème de ne pas pouvoir vous connecter à MySQL. Cela peut être dû à des problèmes de réseau, à des problèmes de configuration ou à d'autres problèmes. Dans cet article, nous verrons comment résoudre ce problème.

1. Vérifiez la connexion réseau

Tout d'abord, nous devons nous assurer que la connexion réseau entre le conteneur Docker et l'hôte local est normale, ce qui peut être détecté via la commande ping. Ouvrez un terminal sur l'hôte local et exécutez la commande suivante :

$ ping <docker容器IP>

Parmi elles, l'adresse IP du conteneur docker peut être obtenue à l'aide de la commande docker inspect

Si vous pouvez cingler normalement, cela signifie que la connexion réseau est normale ; si vous ne pouvez pas cingler, vous devez résoudre le problème du réseau.

2. Vérifiez la configuration du conteneur MySQL

Lorsque la connexion réseau est normale, nous devons vérifier le fichier de configuration du conteneur MySQL. Exécutez la commande suivante :

$ docker exec -it <container ID> /bin/bash
$ cd /etc/mysql
$ cat my.cnf

où, est l'ID du conteneur MySQL.

Vérifiez si la configuration dans le fichier my.cnf est correcte, notamment pour les paramètres réseau.

3. Créez un utilisateur MySQL et autorisez-le

Si la configuration du conteneur MySQL est normale, vous devez vérifier si l'utilisateur MySQL approprié a été créé et autorisé.

Dans le conteneur MySQL, exécutez la commande suivante :

$ mysql -u root -p

Entrez le mot de passe root pour accéder à la console MySQL.

Exécutez l'instruction SQL suivante pour créer un utilisateur :

CREATE USER 'username'@'%' IDENTIFIED BY 'password';

où 'nom d'utilisateur' et 'mot de passe' sont respectivement le nom d'utilisateur et le mot de passe que vous souhaitez créer.

Ensuite, autorisez l'utilisateur :

GRANT ALL ON *.* TO 'username'@'%';

où 'nom d'utilisateur' est le nom d'utilisateur que vous venez de créer.

Enfin, exécutez la commande suivante pour enregistrer les modifications et quitter la console MySQL :

FLUSH PRIVILEGES;
EXIT;

4. Vérifiez les paramètres du pare-feu

Si vous ne parvenez toujours pas à vous connecter à MySQL, cela peut être dû à un problème avec les paramètres du pare-feu. Nous devons confirmer si un pare-feu bloque les connexions MySQL.

Exécutez la commande suivante sur l'hôte local pour confirmer si le port est occupé par le pare-feu :

$ sudo netstat -tunlp | grep <MySQL容器端口>

Parmi eux,

Si le port est déjà occupé, vous devez l'activer. En prenant le système Ubuntu comme exemple, exécutez la commande suivante pour ouvrir le port :

$ sudo ufw allow <MySQL容器端口>/tcp

Parmi eux,

S'il s'agit d'un autre système d'exploitation, vous devez ouvrir le port en fonction des paramètres du système d'exploitation correspondant.

5. Redémarrez le conteneur MySQL

Enfin, si les quatre étapes ci-dessus ne résolvent pas le problème, nous pouvons essayer de redémarrer le conteneur MySQL.

Vous pouvez utiliser la commande suivante pour redémarrer le conteneur MySQL :

$ docker restart <container ID>

où, est l'ID du conteneur MySQL.

Résumé

Le problème de l'impossibilité de se connecter à Docker MySQL peut être causé par de nombreuses raisons, et nous devons les éliminer une par une. Confirmez d'abord si la connexion réseau est normale, puis vérifiez la configuration du conteneur MySQL, créez un utilisateur MySQL et autorisez-le, vérifiez les paramètres du pare-feu et enfin essayez de redémarrer le conteneur MySQL. Si aucune des étapes ci-dessus ne résout le problème, vous pouvez envisager de passer à une autre image MySQL ou de rechercher d'autres solutions.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn