Heim  >  Artikel  >  Datenbank  >  Wie behebt man „ECONNREFUSED“-Fehler beim Herstellen einer Verbindung zum MySQL-Docker-Container in Node.js?

Wie behebt man „ECONNREFUSED“-Fehler beim Herstellen einer Verbindung zum MySQL-Docker-Container in Node.js?

Barbara Streisand
Barbara StreisandOriginal
2024-11-10 19:46:02166Durchsuche

How to Fix

Auflösen der Node.js-MySQL-Docker-Verbindung ECONNREFUSED

In Node.js weist der Fehler „ECONNREFUSED“ normalerweise auf einen Verbindungsfehler beim Versuch hin eine Verbindung zu einer Datenbank herstellen. Beim Herstellen einer Verbindung zu einer MySQL-Datenbank, die in einem Docker-Container ausgeführt wird, kann dieses Problem gelöst werden, indem eine ordnungsgemäße Portzuordnung sichergestellt wird.

Standardmäßig ordnet Docker den Host-Port einem anderen Port innerhalb des Containers zu. In Ihrer bereitgestellten Docker Compose-Datei wird der MySQL-Container auf Port 3307 auf dem Host verfügbar gemacht, während er intern auf Port 3306 lauscht.

Um diese Diskrepanz zu beheben, ändern Sie die Node.js-Konfiguration, um den richtigen Port für die Verbindung anzugeben zu MySQL:

const config = {
  host: 'mysql', // Use the container name
  database: 'mydb',
  port: '3306', // Use the internal container port
  user: 'mysql',
  password: '1234',
  connectionLimit: 10
};

Stellen Sie außerdem sicher, dass der Docker Compose-Befehl den richtigen Port verwendet, wenn er darauf wartet, dass MySQL wird verfügbar:

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

Diese Änderungen ermöglichen es Node.js, erfolgreich eine Verbindung zum MySQL-Container herzustellen.

Das obige ist der detaillierte Inhalt vonWie behebt man „ECONNREFUSED“-Fehler beim Herstellen einer Verbindung zum MySQL-Docker-Container in Node.js?. 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