Comment résoudre l'erreur "MySQL server has gone away"
Vous rencontrez de temps à autre cette fameuse erreur fâcheuse "MySQL server has gone away" ? Voici quelques astuces pour résoudre cette erreur ...
Cette erreur a généralement lieu dès lors que vous avez ouvert une connexion MySQL et que la base n'y détecte aucune activité.
Soit votre traitement est trop long, dans ce cas pensez à maintenir des échanges avec la base de données régulièrement via des mysql_ping()
Sinon augmentez la valeur du "wait_timeout" (etc/mysql/my.cnf) de votre base de données à une durée suffisamment haute pour permettre d'éviter à votre base de donnée de fermer trop tôt ses connexions. Mais attention, le changement de ce paramètre peut avoir des conséquences très négatives sur le nombre de connexions ouvertes d'autant plus si celles-ci sont parfois mal fermées par votre applicatif.
# Au bout de 5 minutes d'inactivité la base fermera sa connexion automatiquement
wait_timeout=300
Si cette modification n'est toujours pas suffisante après un redémarrage de votre base données, pensez à augmenter la taille maximale des données pouvant être remontées par MySQL :
max_allowed_packet=64m
La connexion a été perdue probablement parce que la taille des données remontée est supérieure à la taille autorisée par défaut.
Vous souhaitez aller plus loin dans l'optimisation de votre base ? Découvrez l'outil Mysqltuner !
Pour découvrir toutes les astuces concernant les optimisations sur MySQL, je vous conseille ce livre de référence sur le sujet de chez O'REILLY.
Enfin, si vous vous intéressé aux bases de données, je vous conseille mon article sur l'analyse du marché des bases de données.