2012-02-24 20 views
5

Mam długo działający skrypt PHP. Tworzę połączenie z bazą danych na samym początku skryptu i wykonuję operację bazy danych podczas uruchamiania.Jak długo utrzymuje się połączenie z bazą danych MySQL PHP?

Po tym, skrypt wykonuje 4 godziny działania PHP bez pingowania do MySQL z tym połączeniem nawet jeden raz.

Po zakończeniu tych operacji długo działających PHP, gdy próbuję wykonać mysql_query daje mi następujący błąd: MySQL Server has gone Away

Czy istnieje możliwość zwiększenia limitu czasu połączenia się być 4 godziny? Używam PHP ADODB do łączenia się z MySQL z mojej aplikacji PHP.

Proszę zasugerować, co robić?

Odpowiedz

12

MySQL ma inny limit czasu niż PHP. Możesz go zwiększyć w php.ini na linii mysql.connect_timeout = 14400. Również zwiększyć default_socket_timeout = 14400

Zauważ, że jeśli ustawienie PHP pozwalają zrobić ini_set, można również zrobić w następujący sposób:

ini_set('mysql.connect_timeout', 14400); 
ini_set('default_socket_timeout', 14400); 
+1

mogę potwierdzić, że to działa z GoDaddy dzielonego hostingu, dzięki –

Powiązane problemy