Heim  >  Artikel  >  Backend-Entwicklung  >  Initialisierung der Datenbank fehlgeschlagen, Fehler beim Wählen von TCP 127.0.0.1:3306: Verbindung: Problem mit der verweigerten Verbindung

Initialisierung der Datenbank fehlgeschlagen, Fehler beim Wählen von TCP 127.0.0.1:3306: Verbindung: Problem mit der verweigerten Verbindung

WBOY
WBOYnach vorne
2024-02-06 10:42:041120Durchsuche

初始化数据库失败,出现错误拨号 tcp 127.0.0.1:3306: connect: 连接被拒绝 问题

Frageninhalt

Ich lerne Docker, fangen wir jetzt an Aber ich habe ein Problem, wenn ich das mit Docker ausführe docker run --rm -p 8080:8080/tcp --env-file .env my-project:latest Hier ist ein Teil meines .env-Codes. Ich verwende Docker Desktop unter Windows. Kann ich Docker nicht auf Localhost unter Windows ausführen?

DB_HOST=127.0.0.1
DB_USERNAME=root
DB_NAME=mydbs
DB_PASS=root123
AUTH_GEN_URL=https://api.learning.mydbs.id

Weiß es jemand? Für Antworten wäre ich sehr dankbar

Danke


Richtige Antwort


Das Problem besteht darin, dass beim Starten des Containers versucht wird, eine Verbindung zu 127.0.0.1:3306 innerhalb des Containers und nicht zum Host herzustellen, sodass Sie die Fehlermeldung erhalten, dass die Verbindung abgelehnt wurde, weil auf Port 3306 keine Verbindung besteht Alles läuft im Container auf localhost.

Für Windows und Mac kann dieses Problem einfach mit host.docker.internal 而不是 127.0.0.1 behoben werden. Dadurch wird sichergestellt, dass im Container ausgeführte Dienste ordnungsgemäß eine Verbindung zur MySQL-Instanz herstellen, die auf dem Hostcomputer ausgeführt wird.

Unter Linux ist es sogar noch einfacher, da Sie lediglich den --network="host" 选项传递给 docker runBefehl

hinzufügen müssen

Das obige ist der detaillierte Inhalt vonInitialisierung der Datenbank fehlgeschlagen, Fehler beim Wählen von TCP 127.0.0.1:3306: Verbindung: Problem mit der verweigerten Verbindung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen