Node.js se connecte au conteneur MySQL Docker ECONNREFUSED
Lors de la tentative de connexion à un conteneur MySQL Docker à l'aide de Node.js, une erreur ECONNREFUSED (par exemple, ECONNREFUSED 127.0.0.1:3307) peut se produire. Cette erreur indique que Node.js ne parvient pas à établir une connexion au conteneur MySQL.
Configuration de Docker Compose
Comme illustré dans le fichier docker-compose.yml fourni , il est essentiel de comprendre que la configuration du mappage des ports (par exemple, 3307:3306) spécifie uniquement la manière dont Docker mappe les ports hôtes aux ports de conteneur. Le conteneur lui-même écoute toujours sur son port par défaut (par exemple, 3306 pour MySQL).
Configuration de la connexion Node.js
Pour résoudre l'erreur ECONNREFUSED, assurez-vous que le serveur Node L'application .js est configurée pour se connecter au port interne du conteneur MySQL. Dans l'exemple fourni, la propriété host doit être définie sur « mysql » et la propriété port doit être définie sur « 3306 ».
const config = { host: 'mysql', database: 'mydb', port: '3306', user: 'mysql', password: '1234', connectionLimit: 10 };
Commande dans Docker Compose
De plus, la propriété command dans le fichier docker-compose.yml doit être mise à jour pour attendre MySQL sur le port 3306 au lieu de 3307.
command: ["./wait-for-it.sh", "mysql:3306"]
Remarque : Il est recommandé d'utiliser le script wait-for-it.sh pour garantir que le conteneur MySQL est entièrement initialisé avant de tenter de se connecter depuis Node.js. Ce script peut être obtenu sur https://github.com/vishnubob/wait-for-it.
En suivant ces étapes, il devrait être possible d'établir une connexion entre l'application Node.js et MySQL Conteneur Docker.
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!