Maison >développement back-end >Golang >Pourquoi mon application Go dans Docker ne peut-elle pas se connecter à MySQL sur mon Mac ?

Pourquoi mon application Go dans Docker ne peut-elle pas se connecter à MySQL sur mon Mac ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-29 07:07:02536parcourir

Why Can't My Go App in Docker Connect to MySQL on my Mac?

Erreur : "composer tcp 127.0.0.1:3306 : connexion : connexion refusée" Lors de la connexion à MySQL depuis Go dans Docker

Dans un Lorsque vous tentez de vous connecter à un serveur MySQL exécuté sur un Mac à l'aide de Go et Docker, un message d'erreur apparaît : "dial tcp 127.0.0.1:3306 : connect : connexion refusée." Cette erreur se produit malgré une connexion réussie à la base de données sur localhost:3306 à l'aide de Navicat pour MySQL.

Cette erreur se produit en raison de la nature de l'isolation de Docker sur Mac. Docker s'exécute dans une machine virtuelle (VM) sous la surface, ce qui rend difficile l'accès direct aux services fournis par la machine hôte.

Pour résoudre ce problème, ajustez votre chaîne de connexion pour utiliser docker.for.mac.localhost :3306 au lieu de 127.0.0.1:3306. Ce nom d'hôte spécial permet la communication entre le conteneur Docker et la machine hôte.

Le code Go modifié devrait ressembler à ceci :

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

Cette modification devrait résoudre le problème de connexion et permettre la communication entre votre Accédez à l'application et au serveur MySQL exécutés sur la machine hôte.

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