Heim >Backend-Entwicklung >PHP-Tutorial >Verursacht die PHP-Option mysql.connect_timeout Zeitüberschreitungen bei der MySQL-Server-Verbindung nach 60 Sekunden?
MySQL Server-Trennungsproblem: 60 Sekunden nach Zeitüberschreitung getrennt
Problem:
Ich habe es entdeckt dass eine SQL-Abfrage, die zuvor einwandfrei lief, nun nach 60 Sekunden abläuft und einen Fehler auslöst. Auch wenn die Abfrage langsam ist, wird sie als Teil eines nächtlichen Jobs ausgeführt, sodass sie per se kein Problem darstellt (also bitte nicht vorschlagen, dass ich sie optimiere).
Ich kann den Fehler durchgängig reproduzieren, indem ich „select SLEEP(120);“ ausführe, wie unten gezeigt. Die Ausführung derselben Anweisung vom MySQL-Client aus ist jedoch erfolgreich (gibt 0 zurück). Ich habe versucht, wait_timeout (auf 28800 eingestellt) anzupassen, ohne Erfolg. Ich habe auch den Datenbankserver und den Computer selbst neu gestartet.
Ich bekomme immer eine Zeitüberschreitung von genau 60 Sekunden, was mich vermuten lässt, dass es sich eher um ein Setup-Problem als um ein Problem mit der Ressourcenbeschränkung handelt.
Ich verwende:
Das Folgende ist mein Testcode, meine Ausgabe und die Ergebnisse von SHOW VARIABLES.
... 代码、输出和 SHOW VARIABLES 如下所示 ...
Antwort:
PHP-Option mysql.connect_timeout ist die Ursache dieses Problems. Es wird nicht nur für Verbindungs-Timeouts verwendet, sondern auch zum Warten auf die erste Antwort vom Server. Sie können es so erhöhen:
ini_set('mysql.connect_timeout', 300); ini_set('default_socket_timeout', 300);
Das obige ist der detaillierte Inhalt vonVerursacht die PHP-Option mysql.connect_timeout Zeitüberschreitungen bei der MySQL-Server-Verbindung nach 60 Sekunden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!