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?

Warum schlägt meine Node.js-MySQL-Verbindung zwischen Mitternacht und 2 Uhr morgens fehl und wie kann ich das beheben?

Patricia Arquette
Freigeben: 2024-12-09 18:35:15
Original
704 Leute haben es durchsucht

Why Does My Node.js MySQL Connection Fail Between Midnight and 2 AM, and How Can I Fix It?

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();
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage