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!