Maison > développement back-end > Golang > le corps du texte

Comment se connecter à un serveur MySQL à partir d'une application Go dans Docker en cas de « Connexion refusée » ?

Linda Hamilton
Libérer: 2024-10-30 05:33:28
original
483 Les gens l'ont consulté

How to Connect to a MySQL Server from a Go Application in Docker When Encountering

Erreur : connexion refusée lors de la connexion au serveur MySQL depuis Go dans Docker

Lorsque vous essayez de vous connecter à un serveur MySQL à partir d'une application Go exécutée dans Docker, les développeurs peuvent rencontrer l'erreur suivante :

dial tcp 127.0.0.1:3306: connect: connection refused
Copier après la connexion

Cause :

Par défaut, les conteneurs Docker s'exécutent dans des espaces réseau isolés, ce qui empêche les applications exécutées à l'intérieur d'accéder directement à l'hôte localhost de la machine.

Solution :

Pour résoudre ce problème, utilisez le nom d'hôte spécial docker.for.mac.localhost au lieu de localhost. Cette adresse permet la communication avec les services de la machine hôte en utilisant le réseau Docker :

  1. Mettez à jour la chaîne de connexion dans le code Go :
<code class="go">db, err = sql.Open("mysql", dbUser+":"+dbPassword+"@tcp(docker.for.mac.localhost:3306)/"+dbName)</code>
Copier après la connexion
  1. Si vous utilisez Docker Compose, ajoutez la ligne suivante au fichier docker-compose.yml sous la définition de service pour le conteneur de base de données :
<code class="yml">ports:
  - "3306:3306"</code>
Copier après la connexion

Cela mappera le port 3306 de la machine hôte au port 3306 du conteneur, permettant à l'application Go de se connecter via le bon port.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!