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
Freigeben: 2024-11-11 02:39:02
Original
216 Leute haben es durchsucht

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
};
Nach dem Login kopieren

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"]
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage