Connexion perdue : dépannage des déconnexions MySQL dans Node.js
Les utilisateurs de Node.js peuvent rencontrer le message "Connexion perdue : le serveur a fermé la connexion " erreur lors de l'utilisation du module mysql. Ce problème survient lorsque le serveur met fin brusquement à la connexion TCP, souvent dans un intervalle de temps spécifique (par exemple, entre minuit et 2 heures du matin).
Cause
L'erreur indique que la connexion entre Node.js et le serveur MySQL a été interrompue par le serveur, généralement en raison d'une déconnexion inattendue ou d'un serveur redémarrer.
Solution
Pour résoudre ce problème, on peut utiliser un mécanisme de gestion des connexions qui détecte et rétablit automatiquement les connexions perdues. Voici un exemple :
var db_config = { host: 'localhost', user: 'root', password: '', database: 'example' }; var connection; function handleDisconnect() { connection = mysql.createConnection(db_config); connection.connect(function(err) { if (err) { console.log('error when connecting to db:', err); setTimeout(handleDisconnect, 2000); } }); connection.on('error', function(err) { console.log('db error', err); if (err.code === 'PROTOCOL_CONNECTION_LOST') { handleDisconnect(); } else { throw err; } }); } handleDisconnect();
Explication
Dans cette solution :
En implémentant ce mécanisme de gestion des connexions, vous pouvez vous assurer que votre application peut gérer correctement les tentatives de reconnexion. pertes de connexion et maintenir une connexion fiable à la base de données MySQL, même pendant les redémarrages du serveur ou les périodes de maintenance.
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!