Maison >développement back-end >tutoriel php >L'option PHP mysql.connect_timeout provoque-t-elle des délais d'attente de connexion au serveur MySQL après 60 secondes ?

L'option PHP mysql.connect_timeout provoque-t-elle des délais d'attente de connexion au serveur MySQL après 60 secondes ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-18 22:10:30447parcourir

Is the mysql.connect_timeout PHP Option Causing MySQL Server Connection Timeouts After 60 Seconds?

Problème de déconnexion du serveur MySQL : déconnecté 60 secondes après l'expiration du délai

Problème :

J'ai découvert qu'une requête SQL qui fonctionnait auparavant correctement expire désormais après 60 secondes et génère une erreur. Même si la requête est lente, elle est exécutée dans le cadre d'un travail de nuit, ce n'est donc pas un problème en soi (donc ne me suggérez pas de l'optimiser).

Je peux reproduire systématiquement l'erreur en exécutant "select SLEEP(120);" depuis PHP comme indiqué ci-dessous. Cependant, l'exécution de la même instruction à partir du client MySQL réussit (renvoie 0). J'ai essayé d'ajuster wait_timeout (défini sur 28800) sans succès. J'ai également redémarré le serveur de base de données et l'ordinateur lui-même.

J'obtiens toujours un délai d'attente d'exactement 60 secondes, ce qui me fait penser qu'il pourrait s'agir d'un problème de configuration plutôt que d'un problème de contrainte de ressources.

J'utilise :

  • Windows Server 2003
  • MySQL 5.1.36-community
  • PHP 5.3

Ce qui suit est mon code de test, la sortie et les résultats de SHOW VARIABLES.

... 代码、输出和 SHOW VARIABLES 如下所示 ...

Réponse :

l'option php mysql.connect_timeout est la cause de ce problème. Il est utilisé non seulement pour les délais d'attente de connexion mais également pour attendre la première réponse du serveur. Vous pouvez l'augmenter comme ceci :

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

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