Erreur MySQL "lire ECONNRESET" dans Node.js après un temps d'inactivité
Lors de la connexion à MySQL via le module node-mysql, vous pouvez rencontrez l’erreur « lire ECONNRESET » après avoir laissé le serveur inactif pendant de longues périodes. Cette erreur indique une réinitialisation de la connexion, potentiellement due au mécanisme d'élagage des connexions inactives de MySQL.
Diagnostic du problème :
-
Déconnexion de la connexion : L'erreur suggère une déconnexion entre la connexion de Node et le serveur MySQL. Cela pourrait être dû au paramètre "wait_timeout" de la variable MySQL, qui est par défaut de 8 heures.
-
Problèmes de pool de connexions : Node-mysql utilise des pools de connexions pour gérer les déconnexions et supprimer les connexions inactives. Cependant, il se peut qu'il ne soit pas en mesure d'élaguer une connexion déconnectée tant que vous n'avez pas effectué une requête, ce qui déclenche l'erreur.
-
Facteurs externes : Alors que l'erreur "lire ECONNRESET" est souvent associée à MySQL , pensez à vérifier tout facteur externe potentiel contribuant à la perte de connexion.
Résoudre l'erreur :
-
Augmenter le délai d'attente : Définissez la variable MySQL "wait_timeout" sur une durée plus longue, par exemple 28 800 secondes (8 heures). Cela permet des périodes d'inactivité plus longues sans déconnexion.
-
Utilisez Pool Pruning : Implémentez un mécanisme de battement de cœur dans votre code pour envoyer périodiquement SELECT 1 ; requêtes à la base de données, maintenant la connexion active.
-
Insistez sur le délai d'inactivité : Utilisez l'option ralentieTimeoutMillis du module de pool de nœuds pour élaguer automatiquement les connexions inactives, empêchant ainsi le problème de survenir.
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!