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!