Soudain “MySQL server has gone away” erreur dans le PHP du site

Aujourd'hui l'un de mes sites web a commencé à montrer des

Numéro D'Erreur: 2006 
MySQL server has gone away

C'est un faible trafic de site client fonctionnant sous Apache 2.2.9 (Debian), PHP 5.2.6-1+lenny3 (à l'aide de CodeIgniter 1.7.1 cadre) et MySQL 5.0.51 un. J'ai évidemment reasearched sur l'erreur, mais toutes les solutions possibles implique qu'il y a de grosses requêtes en cours qui peuvent de temps et de réinitialiser la connexion, ou de frapper le paquet de limites. Cependant, ce n'est pas le cas, c'est une petite base de données traitée avec le plus simple des requêtes. Pour être sûr de ce que j'ai fait un peu de requêtes pour retourner une ligne, toujours la même erreur.

Base de données d'informations d'identification sont très bien, je peux même vous connecter directement dans mysql, exécutez quelques du site des requêtes et obtenir les bonnes données instantanément. Il y a plusieurs autres sites sur le même serveur et les connexions à la base de données, beaucoup plus grands sites, et ils n'ont pas du tout les problèmes.

J'ai essayé:

  • Le Redémarrage De MySQL
  • De redémarrer le serveur tout entier
  • À la recherche d'erreurs dans les logs (Apache et MySQL, aucun)
  • Vérification db utilisateur des autorisations
  • Changer mysql.connect_timeout et default_socket_timeout en PHP
  • Changer max_allowed_packet dans MySQL
  • La lecture de la officiel docs, forum et tout ce DONC qui dit "MySQL server has gone away"

Nouveau:

  • La désactivation des connexions persistantes dans PHP
  • Changer wait_timeout et connect_timeout dans MySQL

Mise à jour:

Il semble être lié à la durée d'exécution de mon script: il récupère des informations en utilisant le Facebook PHP clients et cet appel semble pas au hasard aujourd'hui, donc, soit je n'ai pas de données à partir de Facebook ou de l'erreur MySQL. Mais à ma grande surprise, aucune des solutions proposées comme semble traiter avec le délai d'attente.

Des idées? je vous remercie pour votre temps!

Sont Apache et MySQL sur la même case? Si vous créer une simple page PHP qui s'exécute une requête simple (par exemple, SELECT VERSION();) est-ce que le travail?
J: Oui, et étonnamment pour moi, oui pour le 2ème aussi, il semble y avoir un problème porté par le cadre, puis..
Toute chance vous pourriez publier la requête générée en sortie? Je suppose que c'est en passant par CodeIgniter. Êtes-vous d'utiliser InnoDB ou exotique de page de code, par hasard?
Oui je pourrais, mais c'est juste quelques lignes avec pas beaucoup de bruit. Je suis en utilisant MyISAM et UTF-8 sur les bases de données/tables.

OriginalL'auteur lima | 2009-12-10