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 ?
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 :
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!