При выполнении скрипта, который выполнял серию длительных действий возникал загадочный баг. Долго не мог его выявить, он то появлялся, то исчезал, пока я шаманил с бубном занимался отладкой. Я искал проблему в скрипте и отказывался верить, что проблема на сервере. Как обычно и бывает, на локалхосте все работало как часы.
Выяснил, если процесс выполнялся более 30 сек, соединение с mysql отваливалось с ошибкой «MySQL error: MySQL server has gone away». При этом скрипт успешно отрабатывал и выполнял свои действия, только не заносил в базу результат 🙂
Проблема в настройках mysql сервера у хостера wait_timeout = 30. Лечится очень просто. Либо заново mysql_connect() в скрипте, либо перед началом длительных действий выполнить SQL
1 |
SET SESSION wait_timeout = 1800 |
Свежие комментарии