Heim > Datenbank > MySQL-Tutorial > Warum kommt es nach 60 Sekunden zu einer Zeitüberschreitung meiner MySQL-Verbindung, obwohl „wait_timeout' höher eingestellt ist?

Warum kommt es nach 60 Sekunden zu einer Zeitüberschreitung meiner MySQL-Verbindung, obwohl „wait_timeout' höher eingestellt ist?

Mary-Kate Olsen
Freigeben: 2024-11-20 03:05:02
Original
327 Leute haben es durchsucht

Why Does My MySQL Connection Timeout After 60 Seconds, Even Though `wait_timeout` Is Set Higher?

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

  • Windows Server 2003
  • MySQL 5.1-Community
  • PHP 5.3

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage