MySQL сервер ушел, PDO и max_allowed_packet в PHP
Знаете ли вы, как избежать следующего фатального сообщения об ошибке:
"...Сервер MySQL ушел".
Я предполагаю, что это означает, что соединение PDO с MySQL было потеряно.
я проверил MySQL max_allowed_packet
переменная, равная 268435456 (думаю, этого значения более чем достаточно).
3 ответа
Спасибо за ваши ответы. После нескольких дней исследований я решил сбросить соединение MySQL PDO каждые 250 секунд. Я знаю, что это не лучшее в своем классе решение, но, по крайней мере, это решение, позволяющее избежать проблемы.
Нет способа "избежать" этой ошибки. Эта ошибка происходит, когда вы теряете соединение с сервером БД. Это может произойти по разным причинам. Наиболее распространенная причина MySQL server has gone away
ошибка в том, что сервер отключил тайм-аут и закрыл соединение.
Некоторые другие общие причины:
- Вы (или администратор БД) убили работающий поток.
- Вы попытались выполнить запрос после закрытия соединения с сервером.
- Вы получили тайм-аут из соединения TCP/IP на стороне клиента.
- Вы столкнулись с таймаутом на стороне сервера, и автоматическое переподключение на клиенте отключено.
- И больше.
Проверьте эту ссылку из документации MYSQL для получения дополнительной информации.
Вы можете проверить max_connections и убедиться, что они не достигнуты - это наиболее распространенная причина, которую я помню, чтобы вы получили эту ошибку.