Maison > base de données > tutoriel mysql > Comment résoudre les erreurs Node.js MySQL « Connexion perdue : le serveur a fermé la connexion » ?

Comment résoudre les erreurs Node.js MySQL « Connexion perdue : le serveur a fermé la connexion » ?

Mary-Kate Olsen
Libérer: 2024-12-13 04:42:08
original
620 Les gens l'ont consulté

How to Resolve Node.js MySQL

Node.js MySQL : Résolution de l'erreur « Connexion perdue : le serveur a fermé la connexion »

Lors de l'établissement de connexions aux bases de données MySQL à l'aide de Node. js, il est possible de rencontrer une erreur indiquant « Connexion perdue : le serveur a fermé la connexion ». Cette erreur se produit généralement entre 12h00 et 14h00, lorsque la connexion TCP est interrompue par le serveur.

Solution 1 : Gestion automatique de la reconnexion

À gérer cette erreur automatiquement, implémentez le code suivant :

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();
Copier après la connexion

Dans ce code, une connexion est établie avec le serveur MySQL. Si la connexion est perdue en raison d'un redémarrage du serveur ou d'un délai d'inactivité, la fonction handleDisconnect() est appelée, ce qui rétablit la connexion.

Solution 2 : Reconnexion manuelle

Dans le code fourni, vous avez implémenté une partie du mécanisme de reconnexion automatique, mais il manque une partie après la ligne connection = mysql.createConnection(kf_config);. Le code suivant termine l'implémentation :

connection.connect(function(err) {
  if (err) {
    console.log("Error connecting to KFC: " + err);
  } else {
    console.log("KF connected!");
  }
});
Copier après la connexion

Vous devez également enregistrer un écouteur d'erreur sur l'objet de connexion pour gérer automatiquement les événements de perte de connexion. Par exemple :

connection.on('error', function(err) {
  if (err.code === 'PROTOCOL_CONNECTION_LOST') {
    console.log("KF connection lost. Reconnecting...");
    handleKFDisconnect();
  } else {
    throw err;
  }
});
Copier après la connexion

En suivant ces étapes, vous pouvez vous assurer que votre application MySQL Node.js gère correctement la perte de connexion et rétablit automatiquement la connexion.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal