Я вошел на свой сервер, чтобы проверить состояние базы данных, и заметил, SHOW PROCESSLIST;
что существует большое количество спящих подключений, которые очень старые.
Какой продолжительности должен быть лимит времени соединения, прежде чем соединение должно быть разорвано?
Как установить ограничение по времени в MySQL 5.0.51a-3ubuntu5.4?
Заметка:
Я использую PHP 5.2.x и Symfony Framework 1.2.
Ответы:
mysqld
истечет время ожидания соединения с базой данных на основе двух параметров сервера:Оба по умолчанию составляют 28 800 секунд (8 часов).
Вы можете установить эти параметры в
/etc/my.cnf
Если ваши соединения постоянны (открыты через
mysql_pconnect
), вы можете понизить эти цифры до чего-то разумного, например, 600 (10 минут) или даже 60 (1 минута). Или, если ваше приложение работает нормально, вы можете оставить значение по умолчанию. Это зависит от вас.Вы должны установить их следующим образом
my.cnf
(вступает в силу послеmysqld
перезапуска):Если вы не хотите перезапускать mysql, выполните эти две команды:
Это не закроет уже открытые соединения. Это приведет к закрытию новых подключений через 180 секунд.
источник
wait_timeout=180
?