У нас есть приложение, которое было развернуто на 50+ сайтах. На этих сайтах мы заметили странное поведение, теперь мы отследили это до одного конкретного запроса. Очень часто, один или два раза в день, как правило, один из наших отчетов об отладке
2006 : MySQL server has gone away
Я знаю, что существует множество причин, по которым эта ошибка может быть вызвана, но самая странная вещь заключается в том, что каждый раз, когда она возникает, она возникает из того же запускаемого SQL-запроса. В этом запросе нет ничего странного или сложного, он выглядит так:
SELECT `advert_only` FROM `products` WHERE `id` = '6197'
Этот запрос должен выполняться десятки тысяч раз в день для разных идентификаторов продуктов, поэтому он, конечно, не терпит неудачу каждый раз. Он случайно не работает на кажущихся случайными сайтами на наших 4 серверах. По-видимому, нет общности, одна маленькая вещь, которую мы заметили, заключается в том, что иногда это случается на загрузке 2 или 3 страницы подряд для одного конкретного человека, поскольку мы также отслеживаем IP-адреса того, с кем это произошло.
Это на серверах CentOS 5 под управлением MySQL 5.0.81
Это похоже на левое поле, но вы должны проверить свой жесткий диск SMART на наличие ошибок. Если есть проблемы с чтением из этого "сектора", тогда могут возникнуть проблемы. Если у вас есть группа рейдов, я бы не стал слишком беспокоиться об этом. Я бы не дал высокой вероятности, что это проблема, но если вы действительно в тупик, то это может стоить того.
on http://bugs.mysql.com/bug.php?id=1011 второй комментарий говорит, что: "ошибка" MySQL-сервер ушла "вызвана запросом дольше, чем max_allowed_packet."
есть дополнительная информация об исправлении его здесь: http://bogdan.org.ua/2008/12/25/how-to-fix-mysql-server-has-gone-away-error-2006.html
Это означает, что соединение sql слишком долгое время простаивало. Проверьте, выполняются ли какие-то медленные операции перед вашим sql-запросом.