Heim >Datenbank >MySQL-Tutorial >Warum kommt es nach 60 Sekunden zu einer Zeitüberschreitung meiner MySQL-Verbindung, obwohl „wait_timeout' höher eingestellt ist?
MySQL-Server nach 60 Sekunden getrennt
Problemhintergrund
Ich führe eine SQL-Abfrage aus das zuvor einwandfrei funktionierte, ist ein Fehler aufgetreten, der nach 60 Sekunden abgelaufen ist und einen Fehler ausgegeben hat. Obwohl die Abfrage langsam ist, wird sie als Teil einer nächtlichen Aufgabe ausgeführt, sodass das per se kein Problem darstellt (also schlagen Sie mir bitte nicht vor, sie zu optimieren).
Problemdetails
Ich habe den Fehler reproduziert, indem ich „select SLEEP(120); (siehe unten)“ in PHP ausgeführt habe. Allerdings habe ich das Gleiche auch vom MySQL-Client aus ausgeführt Die Anweisung wird erfolgreich sein (Rückgabe 0). Ich habe versucht, wait_timeout anzupassen (auf 28800 gesetzt), aber ohne Erfolg habe ich auch den Datenbankserver und die Maschine selbst neu gestartet
Der Fehler tritt meiner Meinung nach immer nach 60 Sekunden auf ein Setup-Problem und kein Ressourcenlimit-Problem
Systeminformationen
Testcode, Ausgabe und SHOW-VARIABLEN
[Die Ergebnisse von Testcode, Ausgabe und SHOW-VARIABLEN werden hier weggelassen]
Lösung
Die PHP-Option mysql.connect_timeout ist die Ursache dieses Problems. Sie wird nicht nur für die Zeitüberschreitung der Verbindung verwendet, sondern auch für das Warten auf die erste Anfrage vom Server . Eine Antwort. Sie können es wie folgt erhöhen:
ini_set('mysql.connect_timeout', 300);
ini_set('default_socket_timeout', 300);
Das obige ist der detaillierte Inhalt vonWarum kommt es nach 60 Sekunden zu einer Zeitüberschreitung meiner MySQL-Verbindung, obwohl „wait_timeout' höher eingestellt ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!