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
Freigeben: 2024-12-13 04:42:08
Original
638 Leute haben es durchsucht

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

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!");
  }
});
Nach dem Login kopieren

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

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!

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