MySQL Server Has Gone Away
Comprendre et résoudre les pertes de connexion MySQL.
L'erreur "MySQL server has gone away" survient quand la connexion entre votre application et MySQL est coupée. Cela peut arriver pour plusieurs raisons, toutes avec des solutions différentes.
SymptĂŽmes
- Erreur "MySQL server has gone away"
- Erreurs sporadiques sur certaines requĂȘtes
- Timeout sur les longues opérations
- Connexions qui fonctionnent puis échouent
Causes Fréquentes
- wait_timeout dépassé : MySQL ferme les connexions inactives aprÚs wait_timeout secondes.
- max_allowed_packet trop petit : Une requĂȘte trop volumineuse dĂ©passe la limite autorisĂ©e.
- MySQL a redémarré : Un redémarrage MySQL coupe toutes les connexions existantes.
Ătapes de Diagnostic
- Vérifiez si MySQL tourne (systemctl status mysql)
- Examinez les logs MySQL (/var/log/mysql/error.log)
- Vérifiez wait_timeout et max_allowed_packet
- Testez avec une requĂȘte simple pour isoler le problĂšme
Automatiser avec MoniTao
MoniTao aide à détecter ces problÚmes :
- Surveillance des endpoints qui utilisent la BDD
- Détection des erreurs 500 liées aux connexions
- Historique pour identifier les patterns
Bonnes Pratiques
- Utilisez des connexions persistantes avec reconnect automatique
- Augmentez max_allowed_packet si nécessaire
- Implémentez un health check sur la BDD
- Utilisez un connection pool avec validation
Questions Fréquentes
Quelle valeur pour wait_timeout ?
Par défaut 28800s (8h). Réduisez à 300s si vous avez beaucoup de connexions.
Comment activer la reconnexion automatique ?
En PHP avec PDO, utilisez ATTR_PERSISTENT ou interceptez l'erreur pour reconnecter.
max_allowed_packet, quelle valeur ?
Minimum 16M pour les applications standards. 64M ou plus si vous stockez des blobs.
Comment MoniTao aide ?
En surveillant les endpoints, vous détectez quand la BDD a des problÚmes.
Liens utiles
PrĂȘt Ă dormir sur vos deux oreilles ?
Commencez gratuitement, sans carte bancaire.