Un message d'erreur beaucoup redouté de MySQL pendant les questions est « serveur de MySQL est parti ». Un message alternatif est « raccordement perdu au serveur pendant la question ». C'est un problème étrange qui afflige une large variété de logiciel de PHP incluant mais non limitée à WordPress. Il y a plusieurs causes pour lui. Regardons le terrain communal et quelques causes rares et ce que vous pouvez faire pour le fixer.

Les causes les plus communes sont :
1. Le serveur chronométré dehors et fermé le raccordement. Par défaut, le serveur ferme le raccordement après 8 heures ou 28800 secondes si rien ne s'est produit. Vous pouvez changer le délai en plaçant la variable de wait_timeout quand vous commencez le mysqld par l'intermédiaire de /etc/my.cnf de votre serveur (sur le Linux ; localisez le dossier dans l'annuaire d'installation sur des fenêtres) aussi bien. Ceci affecte la plupart du temps les raccordements persistants ; les raccordements se sont ouverts employant le mysql_pconnect () dans le PHP. Il peut également affecter les raccordements mis en commun de disent toute mise en commun de raccordement de côté de serveur.

2. Une autre raison commune de recevoir le serveur de MySQL a l'erreur partie allée est parce que vous avez publié un « étroit » sur votre raccordement de MySQL et avez puis essayé de courir une question sur le raccordement fermé. C'est un problème de logique simple. Partagez-vous le raccordement à travers les fils multiples ?

3. Vous avez obtenu un temps mort du raccordement de TCP/IP du côté de client. Ceci peut se produire si vous aviez employé les commandes : mysql_options (, MYSQL_OPT_READ_TIMEOUT,) ou mysql_options (, MYSQL_OPT_WRITE_TIMEOUT,). Dans ce cas-ci l'augmentation du temps mort, comme décrit ci-dessus, peut aider à résoudre le problème.

4. Vous avez rencontré un temps mort du côté de serveur et la reconnexion automatique dans le client est handicapée. Veuillez se référer à l'article lié ci-dessus pour les détails et la solution.

5. Vous pouvez également obtenir ces erreurs si vous envoyez une question au serveur qui est incorrect ou trop grand. Si le mysqld reçoit un paquet qui est trop grand ou en panne, il suppose que quelque chose a été mal assortie au client et ferme le raccordement. Si vous avez besoin de grandes questions (par exemple, si vous travaillez avec de grandes colonnes de BLOB), vous pouvez augmenter la limite de question en plaçant la variable du max_allowed_packet du serveur, qui a une valeur par défaut de 1MB. Vous pouvez également devoir augmenter la longueur de paquet maximum sur l'extrémité de client. Plus d'information sur placer la longueur de paquet est fournie dans la section B.1.2.9, « paquet trop grand ».

6. Une INSERTION ou REMPLACENT le rapport qui insère un grand beaucoup de rangées peut également causer ces sortes d'erreurs. L'un ou l'autre un de ces rapports envoie une demande simple au serveur indépendamment du nombre de rangées d'être inséré ; ainsi, vous pouvez souvent éviter l'erreur en réduisant le nombre de rangées envoyées par INSERTION ou LA REMPLACER.

7. Vous obtenez également un raccordement perdu si vous envoyez un paquet 16MB ou plus grand si votre client est plus âgé que 4.0.8 et votre serveur est 4.0.8 et en haut, ou l'autre manière autour.

Peu de causes rares sont :
1. Rarement l'administrateur de DB a pu avoir tué le fil courant avec un rapport de MISE À MORT ou une commande de mise à mort de mysqladmin.

2. Une application de client fonctionnant sur un centre serveur différent n'a pas les privilèges nécessaires de se relier au serveur de MySQL de ce centre serveur.

3. Vous employez un client de Windows et le serveur avait laissé tomber le raccordement (probablement parce que le wait_timeout a expiré) avant que la commande ait été publiée. Le problème sur Windows est que dans certains cas MySQL n'obtient pas une erreur de l'OS quand l'inscription au raccordement de TCP/IP au serveur, mais obtient à la place l'erreur quand essayant de lire la réponse du raccordement.

4. Avant MySQL 5.0.19, même si le drapeau de rebranchement dans la structure de MYSQL est égal à 1, MySQL automatiquement ne rebranche pas et ne révise pas la question car il ne sait pas si le serveur obtenait la question originale ou pas.

5. Il est également possible de voir cette erreur si les consultations de hostname échouent (par exemple, si le serveur de DNS sur lequel votre serveur ou réseau se fonde descend). C'est parce que MySQL dépend du système hôte pour le name resolution, mais n'a aucune manière de savoir si cela fonctionne - du point de vue de MySQL le problème est indistinguible de n'importe quel autre temps mort de réseau.

6. Vous pouvez également voir que le serveur de MySQL a l'erreur partie allée si MySQL est commencé par - option de sauter-gestion de réseau.

7. Vous pouvez également rencontrer cette erreur avec les applications qui bifurquent les processus fils, qui essayent d'employer le même raccordement au serveur de MySQL. Ceci peut être évité en employant un raccordement séparé pour chaque processus fils.

8. Une autre issue de gestion de réseau qui peut causer cette erreur se produit si le port de MySQL (défaut 3306) est bloqué par votre mur à l'épreuve du feu, de ce fait empêchant tous les raccordements du tout au serveur de MySQL.

9. Vous avez rencontré un bogue où le serveur est mort tout en exécutant la question. Source

Cela prend du temps et l'effort d'identifier et résoudre ces problèmes. Parler de l'expérience il n'est souvent pas ce qui regarde en premier lieu il. N'assumez rien, éliminent diligemment toutes les possibilités jusqu'à ce que vous le résolviez.