Heim >Datenbank >MySQL-Tutorial >Warum erhalte ich eine ECONNREFUSED-Fehlermeldung, wenn ich von Node.js aus eine Verbindung zu meinem MySQL-Docker-Container herstelle?

Warum erhalte ich eine ECONNREFUSED-Fehlermeldung, wenn ich von Node.js aus eine Verbindung zu meinem MySQL-Docker-Container herstelle?

Susan Sarandon
Susan SarandonOriginal
2024-11-11 02:39:02230Durchsuche

Why am I getting an ECONNREFUSED error when connecting to my MySQL Docker container from Node.js?

Node.js stellt eine Verbindung zum MySQL-Docker-Container ECONNREFUSED her

Beim Versuch, mit Node.js eine Verbindung zu einem MySQL-Docker-Container herzustellen, tritt ein ECONNREFUSED-Fehler auf (z. B. ECONNREFUSED 127.0.0.1:3307) auftreten. Dieser Fehler weist darauf hin, dass Node.js keine Verbindung zum MySQL-Container herstellen kann.

Docker Compose-Konfiguration

Wie in der bereitgestellten Datei docker-compose.yml veranschaulicht , ist es wichtig zu verstehen, dass die Portzuordnungskonfiguration (z. B. 3307:3306) nur angibt, wie Docker Host-Ports Container-Ports zuordnet. Der Container selbst überwacht weiterhin seinen Standardport (z. B. 3306 für MySQL).

Node.js-Verbindungskonfiguration

Um den ECONNREFUSED-Fehler zu beheben, stellen Sie sicher, dass der Node Die .js-Anwendung ist so konfiguriert, dass sie eine Verbindung zum internen Port des MySQL-Containers herstellt. Im bereitgestellten Beispiel sollte die Host-Eigenschaft auf „mysql“ und die Port-Eigenschaft auf „3306“ festgelegt werden.

const config = {
    host: 'mysql',
    database: 'mydb',
    port: '3306',
    user: 'mysql',
    password: '1234',
    connectionLimit: 10
};

Befehl in Docker Compose

Außerdem sollte die Befehlseigenschaft in der Datei docker-compose.yml aktualisiert werden, um statt auf Port 3306 auf MySQL zu warten 3307.

command: ["./wait-for-it.sh", "mysql:3306"]

Hinweis: Es wird empfohlen, das Skript „wait-for-it.sh“ zu verwenden, um sicherzustellen, dass der MySQL-Container vollständig initialisiert ist, bevor versucht wird, eine Verbindung über Node.js herzustellen. Dieses Skript kann von https://github.com/vishnubob/wait-for-it bezogen werden.

Durch Befolgen dieser Schritte sollte es möglich sein, eine Verbindung zwischen der Node.js-Anwendung und MySQL herzustellen Docker-Container.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich eine ECONNREFUSED-Fehlermeldung, wenn ich von Node.js aus eine Verbindung zu meinem MySQL-Docker-Container herstelle?. 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