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
Libérer: 2024-11-11 00:01:03
original
601 Les gens l'ont consulté

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
}
Copier après la connexion

Fichier de composition Docker modifié :

command: ["/bin/bash", "./wait-for-it.sh", "mysql:3306"]  // Match the port MySQL is listening on
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal