Heim >Datenbank >MySQL-Tutorial >Warum schlägt meine Node.js-MySQL-Verbindung zwischen Mitternacht und 2 Uhr morgens fehl und wie kann ich das beheben?
MySQL-Verbindungsproblem: „Verbindung verloren: Der Server hat die Verbindung geschlossen“
Problem:
Bei der Verwendung von Node.js mit MySQL tritt zu bestimmten Zeiten (normalerweise zwischen Mitternacht und...) der Fehler „Verbindung verloren: Der Server hat die Verbindung geschlossen“ auf 2 Uhr morgens).
Lösung:
Folgen Sie den folgenden Schritten, um dieses Problem zu beheben:
var db_config = { host: 'localhost', user: 'root', password: '', database: 'example' }; var connection; function handleDisconnect() { // Recreate the connection connection = mysql.createConnection(db_config); connection.connect(function(err) { if(err) { console.log('error when connecting to db:', err); setTimeout(handleDisconnect, 2000); // Delay before reconnecting } }); // Handling connection errors connection.on('error', function(err) { console.log('db error', err); if(err.code === 'PROTOCOL_CONNECTION_LOST') { handleDisconnect(); } else { throw err; } }); } handleDisconnect();
Erklärung:
Dieses Code-Snippet erstellt eine neue Verbindung zum MySQL-Server, wenn eine Trennung auftritt. Die setTimeout-Funktion führt eine Verzögerung ein, um eine Hot-Loop zu verhindern, sodass das Skript andere Anfragen verarbeiten kann, während die Verbindung wiederhergestellt wird.
Der Fehlerhandler ist für die Behandlung von „PROTOCOL_CONNECTION_LOST“-Fehlern konfiguriert, die normalerweise bei Serverneustarts auftreten. Andere Fehler werden erneut ausgegeben und liefern detailliertere Informationen zum Problem.
Die Funktion handleDisconnect() wird aufgerufen, um die Fehlerbehandlung und den Wiederherstellungsprozess einzuleiten.
Das obige ist der detaillierte Inhalt vonWarum schlägt meine Node.js-MySQL-Verbindung zwischen Mitternacht und 2 Uhr morgens fehl und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!