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 ?

Pourquoi mon application Node.js obtient-elle une erreur ECONNREFUSED lors de la connexion à un conteneur Docker MySQL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-11 00:01:03602parcourir

Why Does My Node.js App Get an ECONNREFUSED Error When Connecting to a MySQL Docker Container?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn