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 ?
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!