Maison >développement back-end >Golang >Comment résoudre l'erreur « dial tcp 127.0.0.1:3306 : connect : connexion refusée » lors de la connexion à un serveur MySQL dans Docker ?

Comment résoudre l'erreur « dial tcp 127.0.0.1:3306 : connect : connexion refusée » lors de la connexion à un serveur MySQL dans Docker ?

DDD
DDDoriginal
2024-10-28 15:59:01430parcourir

How to Resolve

Problème de numérotation TCP non résolu vers le serveur MySQL via Docker

Impossible d'établir une connexion à un serveur MySQL exécuté dans Docker ? Vous n'êtes pas seul. Examinons ce problème courant et explorons une solution potentielle.

Le problème :

Vous rencontrez le message « composer tcp 127.0.0.1:3306 : connexion : connexion refusée » erreur lors de la tentative de connexion à une base de données MySQL à partir d'un conteneur Docker à l'aide de Go. Votre serveur MySQL est fonctionnel sur localhost:3306, mais la connexion depuis votre application Go échoue.

La solution :

Le nœud du problème réside dans l'isolement de Docker. Par défaut, les conteneurs Docker s'exécutent dans un environnement réseau isolé du système hôte. Cette séparation empêche les conteneurs d'accéder directement aux services fournis par la machine hôte, y compris votre serveur MySQL exécuté sur localhost.

Pour contourner cette limitation, vous pouvez modifier votre chaîne de connexion pour spécifier l'adresse IP de la machine hôte à l'aide du nom d'hôte spécial docker.for.mac.localhost. La chaîne de connexion révisée devrait ressembler à ceci :

db, err = sql.Open("mysql", dbUser+":"+dbPassword+"@tcp(docker.for.mac.localhost:3306)/"+dbName)

En modifiant le nom d'hôte en docker.for.mac.localhost, votre conteneur Docker peut établir une connexion avec le serveur MySQL exécuté sur votre machine hôte via un pont réseau. .

Remarques supplémentaires :

Pour plus d'informations et des conseils de dépannage, reportez-vous à la documentation Docker sur la mise en réseau. N'oubliez pas que cette solution de contournement peut nécessiter une configuration réseau supplémentaire en fonction de votre configuration spécifique.

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