Maison > développement back-end > tutoriel php > Pourquoi une requête MySQL expire-t-elle désormais après 60 secondes alors qu'elle s'exécutait avec succès ?

Pourquoi une requête MySQL expire-t-elle désormais après 60 secondes alors qu'elle s'exécutait avec succès ?

Mary-Kate Olsen
Libérer: 2024-10-18 22:12:03
original
611 Les gens l'ont consulté

Why does a MySQL query now time out after 60 seconds when it used to execute successfully?

Problème de délai d'expiration de 60 secondes sur MySQL Server

Cet article explore un problème dans lequel une requête MySQL qui réussissait auparavant expire désormais après 60 secondes , affichant le message d'erreur "Le serveur MySQL a disparu." Bien que la requête elle-même soit lente, elle a toujours fait partie d'un travail de nuit et n'a jamais posé de problème jusqu'à récemment.

Symptômes du problème

  • La requête cale pendant exactement 60 secondes avant d'expirer.
  • Le problème est reproductible en exécutant l'instruction "SELECT SLEEP(120);" depuis PHP.
  • La même instruction s'exécute avec succès lorsqu'elle est exécutée à partir d'un client MySQL.
  • Ajuster la variable "wait_timeout" à 28 800 secondes ne résout pas le problème.

Causes possibles

  • Les ressources limitées, telles que le processeur ou la mémoire, ne sont pas une cause probable puisque le problème expire toujours au bout de 60 secondes exactement.
  • A la cause potentielle pourrait être un paramètre incorrect plutôt qu'une limitation des ressources.

Dépannage

Le paramètre PHP par défaut "mysql.connect_timeout" s'avère être la racine de la question. Ce paramètre contrôle non seulement le délai d'attente de connexion mais également le temps d'attente de la réponse initiale du serveur.

Solution

Pour augmenter le temps d'attente, la configuration PHP suivante peut être utilisé :

ini_set('mysql.connect_timeout', 300);
ini_set('default_socket_timeout', 300); 
Copier après la connexion

Cette modification augmentera le temps d'attente à la valeur spécifiée, permettant à la requête de se terminer sans expiration.

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal