Maison > Opération et maintenance > Docker > le corps du texte

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

PHPz
Libérer: 2023-04-18 10:00:49
original
5849 Les gens l'ont consulté

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>
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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';
Copier après la connexion

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'@'%';
Copier après la connexion

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;
Copier après la connexion

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容器端口>
Copier après la connexion

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
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal