Maison >base de données >tutoriel mysql >Pourquoi mon application Node.js obtient-elle une erreur ECONNREFUSED lors de la connexion à un conteneur Docker MySQL ?
Connexion Node.js au conteneur Docker MySQL ECONNREFUSED
Problème :
Malgré un problème Docker compose le fichier avec les conteneurs MySQL et Node.js liés, l'application Node.js rencontre une erreur ECONNREFUSED lors de la tentative de connexion au conteneur MySQL à l'aide du port 3307.
Analyse :
Le fichier de composition Docker mappe le port 3307 de l'hôte au port 3306 du conteneur. Cependant, le conteneur MySQL écoute sur 3306 en interne. Cela conduit au problème où Node.js tente de se connecter au port 3307 de l'hôte, qui n'est pas le port sur lequel le conteneur écoute.
Solution :
Pour résoudre le problème, ajustez la configuration MySQL et le fichier de composition Docker comme suit :
Configuration MySQL modifiée :
const config = { host: 'mysql', // Use the MySQL container DNS name database: 'mydb', port: '3306', // Match the port the MySQL container is listening on user: 'mysql', password: '1234', connectionLimit: 10 }
Fichier de composition Docker modifié :
command: ["/bin/bash", "./wait-for-it.sh", "mysql:3306"] // Match the port MySQL is listening on
En effectuant ces modifications, l'application Node.js se connectera désormais au conteneur MySQL en utilisant le bon port, et l'erreur ECONNREFUSED devrait être résolue.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!