У меня есть сценарий, который делает большую работу, требующую беготни ночью.
Это использует подготовленный оператор PDO, который выполняется в цикле.
Несколько первых хорошо работают, но тогда я добираюсь до точки, где они все перестали работать с ошибкой: "Сервер MySQL ушел".
Мы выполняем MySQL 5.0.77.
Версия 5.2.12 PHP
Остальная часть сайта хорошо работает.
B.5.2.9. Сервер MySQL ушел. В разделе руководства по MySQL есть список возможных причин этой ошибки.
Может быть, вы попали в одну из таких ситуаций? - Особенно с учетом того, что вы выполняете долгую операцию, пункт о wait_timeout
может быть интересным ...
Попробуйте использовать PDO :: setAttribute (PDO :: ATTR_EMULATE_PREPARES, true)
в экземплярах ваших подов. Не знаю, что это поможет, но без данных журнала все, что у меня есть.
Вероятно, что либо ваше соединение было прервано (например, wait_timeout или другим потоком, выдающим команду KILL), либо произошел сбой сервера, либо вы каким-то образом нарушили протокол mysql.
Последнее, скорее всего, будет ошибкой в PDO, что очень вероятно, если вы используете подготовленные операторы на стороне сервера или несколько результатов (подсказка: не делайте этого)
Необходимо расследовать сбой сервера ; посмотрите логи сервера.
Если вы все еще не знаете, что происходит, используйте дампер сетевых пакетов (например, tcpdump), чтобы выгрузить содержимое соединения.
Вы также можете включить общий журнал запросов, но в производственной среде делайте это очень осторожно.