Heim >Datenbank >MySQL-Tutorial >Wie behebt man Node.js MySQL-Fehler „Verbindung verloren: Der Server hat die Verbindung geschlossen'?

Wie behebt man Node.js MySQL-Fehler „Verbindung verloren: Der Server hat die Verbindung geschlossen'?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-13 04:42:08749Durchsuche

How to Resolve Node.js MySQL

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!

Stellungnahme:
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