Heim >Backend-Entwicklung >Golang >Warum kann meine Go-App in Docker auf meinem Mac keine Verbindung zu MySQL herstellen?

Warum kann meine Go-App in Docker auf meinem Mac keine Verbindung zu MySQL herstellen?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-29 07:07:02539Durchsuche

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

Fehler: „dial tcp 127.0.0.1:3306: connect: Verbindung verweigert“ beim Herstellen einer Verbindung zu MySQL von Go in Docker

In einem Beim Versuch, mit Go und Docker eine Verbindung zu einem MySQL-Server herzustellen, der auf einem Mac läuft, erscheint die Fehlermeldung: „dial tcp 127.0.0.1:3306: connect: Verbindung verweigert.“ Dieser Fehler tritt trotz erfolgreicher Verbindung zur Datenbank auf localhost:3306 mit Navicat für MySQL auf.

Dieser Fehler tritt aufgrund der Art der Docker-Isolation auf dem Mac auf. Docker wird in einer virtuellen Maschine (VM) unter der Oberfläche ausgeführt, was den direkten Zugriff auf die von der Hostmaschine bereitgestellten Dienste erschwert.

Um dieses Problem zu beheben, passen Sie Ihre Verbindungszeichenfolge an, um docker.for.mac.localhost zu verwenden :3306 statt 127.0.0.1:3306. Dieser spezielle Hostname ermöglicht die Kommunikation zwischen dem Docker-Container und der Hostmaschine.

Der geänderte Go-Code sollte wie folgt aussehen:

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

Diese Änderung sollte das Verbindungsproblem beheben und die Kommunikation zwischen Ihnen ermöglichen Go-Anwendung und der MySQL-Server, der auf dem Host-Computer ausgeführt wird.

Das obige ist der detaillierte Inhalt vonWarum kann meine Go-App in Docker auf meinem Mac keine Verbindung zu MySQL herstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn