Heim  >  Artikel  >  Backend-Entwicklung  >  Wie behebe ich den Fehler „dial tcp 127.0.0.1:3306: connect: Verbindung verweigert“ beim Herstellen einer Verbindung zu einem MySQL-Server in Docker?

Wie behebe ich den Fehler „dial tcp 127.0.0.1:3306: connect: Verbindung verweigert“ beim Herstellen einer Verbindung zu einem MySQL-Server in Docker?

DDD
DDDOriginal
2024-10-28 15:59:01337Durchsuche

How to Resolve

Ungelöstes Problem beim Einwählen von TCP zum MySQL-Server über Docker

Kann keine Verbindung zu einem MySQL-Server hergestellt werden, der in Docker ausgeführt wird? Du bist nicht allein. Lassen Sie uns dieses häufige Problem untersuchen und eine mögliche Lösung erkunden.

Das Problem:

Sie stoßen auf die Fehlermeldung „Dial TCP 127.0.0.1:3306: Connect: Verbindung abgelehnt“. Fehler beim Versuch, mit Go aus einem Docker-Container heraus eine Verbindung zu einer MySQL-Datenbank herzustellen. Ihr MySQL-Server ist auf localhost:3306 funktionsfähig, aber die Verbindung von Ihrer Go-Anwendung schlägt fehl.

Die Lösung:

Der Kern des Problems liegt in der Isolation von Docker. Standardmäßig werden Docker-Container in einer vom Hostsystem isolierten Netzwerkumgebung ausgeführt. Diese Trennung verhindert, dass Container direkt auf Dienste zugreifen, die vom Host-Computer bereitgestellt werden, einschließlich Ihres MySQL-Servers, der auf localhost ausgeführt wird.

Um diese Einschränkung zu umgehen, können Sie Ihre Verbindungszeichenfolge ändern, um die IP-Adresse des Host-Computers mithilfe von anzugeben spezieller Hostname docker.for.mac.localhost. Die überarbeitete Verbindungszeichenfolge sollte wie folgt aussehen:

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

Durch die Änderung des Hostnamens in „docker.for.mac.localhost“ kann Ihr Docker-Container über eine Netzwerkbrücke eine Verbindung mit dem MySQL-Server herstellen, der auf Ihrem Hostcomputer ausgeführt wird .

Zusätzliche Hinweise:

Weitere Anleitungen und Tipps zur Fehlerbehebung finden Sie in der Docker-Dokumentation zum Thema Netzwerk. Denken Sie daran, dass diese Problemumgehung je nach Ihrem spezifischen Setup möglicherweise eine zusätzliche Netzwerkkonfiguration erfordert.

Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „dial tcp 127.0.0.1:3306: connect: Verbindung verweigert“ beim Herstellen einer Verbindung zu einem MySQL-Server in Docker?. 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