Maison >base de données >tutoriel mysql >Pourquoi ma requête MySQL de longue durée entraîne-t-elle une erreur « Le serveur MySQL a disparu » après 60 secondes ?

Pourquoi ma requête MySQL de longue durée entraîne-t-elle une erreur « Le serveur MySQL a disparu » après 60 secondes ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-20 16:03:10602parcourir

Why Does My Long-Running MySQL Query Result in a

MySQL Server a disparu - Problème de délai d'attente inattendu

Lors de l'exécution d'une requête de longue durée (120 secondes de veille), les utilisateurs ont rencontré un problème où le processus échoue avec le message d'erreur "Le serveur MySQL a disparu." Cela se produit après exactement 60 secondes. Le problème persiste sur la communauté Windows Server 2003 et MySQL 5.1.36.

Étapes de dépannage

L'utilisateur a essayé diverses mesures de dépannage, notamment en ajustant le paramètre wait_timeout à 28 800 secondes et redémarrage du serveur de base de données et de la machine. Malgré ces efforts, l'erreur de délai d'attente persiste.

Cause possible

Le problème semble être lié à un paramètre plutôt qu'à un manque de ressources, car les délais d'attente se produisent systématiquement à la barre des 60 secondes.

Solution

Le problème vient de l'option PHP mysql.connect_timeout. Bien que son objectif principal soit de spécifier le délai d'expiration de la connexion, il détermine également le temps imparti pour la première réponse du serveur. Pour résoudre le problème, l'utilisateur doit augmenter cette valeur de délai d'expiration comme suit :

ini_set('mysql.connect_timeout', 300);
ini_set('default_socket_timeout', 300);

En définissant ces valeurs sur 300 secondes (5 minutes), le système attend les réponses du serveur pendant une durée plus longue avant d'expirer. . Cela permet à la requête de longue durée de se terminer avec succès.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn