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

  1. Vérifiez si MySQL tourne (systemctl status mysql)
  2. Examinez les logs MySQL (/var/log/mysql/error.log)
  3. Vérifiez wait_timeout et max_allowed_packet
  4. 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.

PrĂȘt Ă  dormir sur vos deux oreilles ?

Commencez gratuitement, sans carte bancaire.