Node.js MySQL : résolution de l'erreur « ECONNREFUSED » lors de la connexion
Lors de la tentative de connexion à un serveur MySQL via Node.js, rencontrer une erreur « ECONNREFUSED » peut être déroutant, surtout lorsqu'un serveur PHP/Apache sur la même machine fonctionne sans aucun problèmes.
Enquêtons sur la cause de cette erreur et fournissons une solution qui a réussi.
Le défi
Dans l'extrait de code fourni, l'hôte MySQL est défini comme « localhost », tandis que le serveur MySQL sur la machine écoute sur un socket Unix '/var/run/mysqld/mysqld.sock' plutôt que le port TCP standard. Cette incompatibilité entraîne l'erreur « ECONNREFUSED » lorsque l'application Node.js tente de se connecter via TCP.
La solution
Pour résoudre ce problème, nous devons modifier les options de connexion pour spécifier le chemin du socket Unix au lieu d'un port TCP. Ceci peut être réalisé en ajoutant la ligne suivante aux options de connexion :
port: '/var/run/mysqld/mysqld.sock'
Code mis à jour
var mysql_link = { host: 'localhost', port: '/var/run/mysqld/mysqld.sock', // Modified to specify Unix socket path. database: 'nodetest', user: 'root', password: 'xxx' };
Conclusion
En spécifiant les options de connexion correctes, nous pouvons garantir que l'application Node.js est capable d'établir une connexion réussie au serveur MySQL et de poursuivre son opérations en toute fluidité. Il est important de vérifier la configuration du serveur MySQL et d'utiliser les paramètres de connexion appropriés pour éviter de rencontrer de telles erreurs à l'avenir.
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!