Maison > base de données > tutoriel mysql > Comment puis-je gérer efficacement les erreurs de « connexion perdue » dans mon application MySQL Node.js ?

Comment puis-je gérer efficacement les erreurs de « connexion perdue » dans mon application MySQL Node.js ?

Barbara Streisand
Libérer: 2024-12-13 03:21:09
original
505 Les gens l'ont consulté

How Can I Effectively Handle

Node.js MySQL : gestion efficace des erreurs de « connexion perdue »

Lorsque vous travaillez avec MySQL dans Node.js, vous pouvez rencontrer une erreur indiquant que le serveur a fermé la connexion. Ce problème se produit souvent en raison d'un arrêt de la connexion TCP par le serveur.

Comprendre l'erreur

L'erreur apparaît généralement comme :

Error: Connection lost: The server closed the connection.
...
Copier après la connexion

Cela suggère que la connexion établie entre l'application Node.js et le serveur MySQL a été interrompue de manière inattendue.

Solution

Pour résoudre ce problème, vous pouvez utiliser un mécanisme de gestion de connexion pour vous reconnecter automatiquement lorsqu'une connexion est perdue. Voici un extrait de code qui montre comment gérer les déconnexions du serveur :

var db_config = {
  host: 'localhost',
  user: 'root',
  password: '',
  database: 'example'
};

var connection;

function handleDisconnect() {
  connection = mysql.createConnection(db_config); // Recreate the connection

  connection.connect(function(err) {
    if (err) {
      console.log('error when connecting to db:', err);
      setTimeout(handleDisconnect, 2000); // Delay before reconnecting
    }
  });

  connection.on('error', function(err) {
    console.log('db error', err);
    if (err.code === 'PROTOCOL_CONNECTION_LOST') { // Lost connection
      handleDisconnect();
    } else {
      throw err;
    }
  });
}

handleDisconnect();
Copier après la connexion

Analyse

  • La fonction handleDisconnect() établit une nouvelle connexion avec le serveur MySQL en utilisant la méthode createConnection().
  • Il configure également un écouteur d'événement pour l'erreur événement.
  • Lorsqu'une connexion est perdue en raison d'une erreur "PROTOCOL_CONNECTION_LOST" (qui est le code d'une connexion perdue), la fonction handleDisconnect() est appelée de manière récursive pour établir une nouvelle connexion.
  • Sinon, l'erreur est générée.

Supplémentaire Notes

La fonction handleDisconnect() peut être invoquée manuellement ou automatiquement lorsque la tentative de connexion initiale échoue. Cela garantit que l'application peut continuer à fonctionner même si la connexion est perdue de manière inattendue.

En implémentant ce mécanisme de gestion des connexions, vous pouvez empêcher votre application Node.js/MySQL de planter en raison d'une perte de connexion. Cela peut améliorer considérablement la fiabilité et la stabilité de votre projet.

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