Serveur MySQL déconnecté après 60 secondes
Contexte du problème
J'exécute une requête SQL qui fonctionnait auparavant correctement a rencontré une erreur, qui a expiré après 60 secondes et a généré une erreur. Bien que la requête soit lente, elle est exécutée dans le cadre d'une tâche nocturne, ce n'est donc pas un problème en soi (donc s'il vous plaît, ne me suggérez pas de l'optimiser).
Détails du problème
J'ai reproduit l'erreur en exécutant "select SLEEP(120); (voir ci-dessous) depuis PHP. Cependant, en exécutant la même chose depuis le client MySQL, La déclaration réussira (retourner 0). J'ai essayé d'ajuster wait_timeout (défini sur 28800) mais sans succès, j'ai également redémarré le serveur de base de données et la machine elle-même
l'erreur expire toujours après 60 secondes, je pense que c'est très probable. un problème de configuration plutôt qu'un problème de limite de ressources
Informations système
Code de test, sortie et SHOW VARIABLES
[Les résultats du code de test, de la sortie et SHOW VARIABLES sont dans Omis ici]
Solution
L'option php mysql.connect_timeout est à l'origine de ce problème. Elle n'est pas seulement utilisée pour le timeout de connexion mais aussi pour attendre la première requête du serveur. . Une réponse. 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!