Основная причина получения ошибки MySQL server has gone away — закрытие соединения MySQL сервером по прошествии времени, указанного в wait_timeout (по умолчанию это 30 секунд). Лечение — увеличить значение wait_timeout в файле настроек MySQL сервера.