Zalogowałem się na serwerze, aby sprawdzić stan bazy danych, i zauważyłem, SHOW PROCESSLIST;
że istnieje duża liczba bardzo uśpionych połączeń, które są bardzo stare.
Jaki powinien być czas połączenia, zanim połączenie powinno zostać zerwane?
Jak ustawić limit czasu w MySQL 5.0.51a-3ubuntu5.4?
Uwaga:
Korzystam z PHP 5.2.xi frameworka symfony 1.2.
Odpowiedzi:
mysqld
przekroczy limit czasu połączeń z bazą danych na podstawie dwóch opcji serwera:Oba mają domyślnie 28 800 sekund (8 godzin).
Możesz ustawić te opcje w
/etc/my.cnf
Jeśli twoje połączenia są trwałe (otwarte przez
mysql_pconnect
), możesz obniżyć te liczby do rozsądnych wartości, takich jak 600 (10 minut) lub nawet 60 (1 minuta). Lub, jeśli aplikacja działa dobrze, możesz pozostawić domyślną. To zależy od Ciebie.Musisz ustawić je w następujący sposób
my.cnf
(zaczyna obowiązywać pomysqld
ponownym uruchomieniu):Jeśli nie chcesz ponownie uruchamiać mysql, uruchom następujące dwa polecenia:
Nie spowoduje to zamknięcia już otwartych połączeń. Spowoduje to zamknięcie nowych połączeń za 180 sekund.
źródło
wait_timeout=180
?