Connexion MySQL perdue : résolution de l'erreur « Connexion perdue : le serveur a fermé la connexion »
Lorsque vous travaillez avec Node.js et MySQL, vous pouvez occasionnellement rencontrer une erreur indiquant que le serveur a fermé la connexion. Cela se produit généralement entre minuit et 2 heures du matin, ce qui vous laisse perplexe. Le message d'erreur s'affiche souvent comme :
Error: Connection lost: The server closed the connection. at Protocol.end (/opt/node-v0.10.20-linux-x64/IM/node_modules/mysql/lib/protocol/Protocol.js:73:13) at Socket.onend (stream.js:79:10) at Socket.EventEmitter.emit (events.js:117:20) at _stream_readable.js:920:16 at process._tickCallback (node.js:415:13)
Malgré la solution recommandée, le problème persiste. Voici une approche plus complète pour gérer cette erreur efficacement :
var db_config = { host: 'localhost', user: 'root', password: '', database: 'example' }; var connection; function handleDisconnect() { connection = mysql.createConnection(db_config); // Recreate the connection connection.connect(function(err) { // Attempt to connect if(err) { console.log('error when connecting to db:', err); setTimeout(handleDisconnect, 2000); // Delay reconnection attempts } }); connection.on('error', function(err) { console.log('db error', err); if(err.code === 'PROTOCOL_CONNECTION_LOST') { // Connection lost due to server restart or idle timeout handleDisconnect(); } else { throw err; } }); } handleDisconnect();
Ce code effectue les opérations suivantes :
En mettant en œuvre cette approche, vous pouvez gérer efficacement les erreurs de perte de connexion MySQL et assurer une connectivité transparente à la base de données dans vos applications Node.js.
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!