Node.js MySQL: Behebung des Fehlers „Verbindung verloren: Der Server hat die Verbindung geschlossen“
Beim Herstellen von Verbindungen zu MySQL-Datenbanken mithilfe von Node. js, kann es zu einer Fehlermeldung kommen, die besagt: „Verbindung unterbrochen: Der Server hat die Verbindung geschlossen.“ Dieser Fehler tritt normalerweise in Zeiträumen wie 12:00 bis 2:00 Uhr auf, wenn die TCP-Verbindung vom Server unterbrochen wird.
Lösung 1: Automatische Wiederverbindungsbehandlung
An Um diesen Fehler automatisch zu behandeln, implementieren Sie den folgenden Code:
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();
In diesem Code wird eine Verbindung mit dem MySQL-Server hergestellt. Wenn die Verbindung aufgrund eines Serverneustarts oder einer Leerlaufzeitüberschreitung verloren geht, wird die Funktion handleDisconnect() aufgerufen, die die Verbindung wiederherstellt.
Lösung 2: Manuelle Wiederverbindung
Im bereitgestellten Code haben Sie einen Teil des automatischen Wiederverbindungsmechanismus implementiert, aber es fehlt ein Teil nach der Leitungsverbindung = mysql.createConnection(kf_config);. Der folgende Code vervollständigt die Implementierung:
connection.connect(function(err) { if (err) { console.log("Error connecting to KFC: " + err); } else { console.log("KF connected!"); } });
Sie sollten auch einen Fehler-Listener für das Verbindungsobjekt registrieren, um Ereignisse mit Verbindungsverlusten automatisch zu verarbeiten. Zum Beispiel:
connection.on('error', function(err) { if (err.code === 'PROTOCOL_CONNECTION_LOST') { console.log("KF connection lost. Reconnecting..."); handleKFDisconnect(); } else { throw err; } });
Indem Sie diese Schritte befolgen, können Sie sicherstellen, dass Ihre Node.js-MySQL-Anwendung Verbindungsverluste ordnungsgemäß verarbeitet und die Verbindung automatisch wiederherstellt.
Das obige ist der detaillierte Inhalt vonWie behebt man Node.js MySQL-Fehler „Verbindung verloren: Der Server hat die Verbindung geschlossen'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!