Ошибка БД MySQL
Кто-то может подсказать почему может выпадать ошибка такого содержания:
Раньше такой ошибки не было, в базу ни разу не залезал, ничего не менял с установки движка.
Ошибка выпадает рандомно: то сайт нормально работает, а вдруг может перестать вот с этой ошибкой.
Последний лог ошибок:
UPD:
В поддержке хостинга написали:
Куда именно необходимо вписать этот код — вот в этом остался основной теперь вопрос.
SQL Error: MySQL server has gone away at /home/i/public_html/classes/modules/blog/mapper/Blog.mapper.class.php line 269
Array ( [code] => 2006 [message] => MySQL server has gone away [query] => SELECT b.blog_id FROM prefix_blog as b WHERE b.blog_type<>'personal' [context] => /home/i/public_html/classes/modules/blog/mapper/Blog.mapper.class.php line 269 )
Раньше такой ошибки не было, в базу ни разу не залезал, ничего не менял с установки движка.
Ошибка выпадает рандомно: то сайт нормально работает, а вдруг может перестать вот с этой ошибкой.
Последний лог ошибок:
[2012-02-13 13:35:27][23327][8560][ERROR][SQL Error: MySQL server has gone away at /home/i/public_html/plugins/aceadminpanel/classes/modules/admin/mapper/Admin.mapper.class.php line 32
Array
(
[code] => 2006
[message] => MySQL server has gone away
[query] => SELECT adminset_val FROM prefix_adminset WHERE adminset_key = 'version'
[context] => /home/i/public_html/plugins/aceadminpanel/classes/modules/admin/mapper/Admin.mapper.class.php line 32
)
]
[2012-02-13 13:35:27][23327][8560][ERROR][SQL Error: MySQL server has gone away at /home/i/public_html/plugins/aceadminpanel/classes/modules/admin/mapper/Admin.mapper.class.php line 222
Array
(
[code] => 2006
[message] => MySQL server has gone away
[query] => SELECT
u.*,
IF(ua.user_id IS NULL,0,1) as user_is_administrator,
ab.banline, ab.banunlim, ab.bancomment, ab.banactive,
INET_ATON('89.192.113.14') as ipn
FROM
prefix_user as u
LEFT JOIN prefix_user_administrator AS ua ON u.user_id=ua.user_id
LEFT JOIN prefix_adminban AS ab ON u.user_id=ab.user_id
WHERE
u.user_id = '1'
[context] => /home/i/public_html/plugins/aceadminpanel/classes/modules/admin/mapper/Admin.mapper.class.php line 222
)
]
[2012-02-13 13:35:27][23327][8560][ERROR][SQL Error: MySQL server has gone away at /home/i/public_html/classes/modules/blog/mapper/Blog.mapper.class.php line 269
Array
(
[code] => 2006
[message] => MySQL server has gone away
[query] => SELECT
b.blog_id
FROM
prefix_blog as b
WHERE
b.blog_type<>'personal'
[context] => /home/i/public_html/classes/modules/blog/mapper/Blog.mapper.class.php line 269
)
]
UPD:
В поддержке хостинга написали:
Судя по всему время от времени скрипт почему то подвисает и срабатывает
таймаут mysql. Для решения проблемы надо прописать в скриптах после
подключения что то вроде:
mysql_query('SET SESSION wait_timeout = 60', $connection);
это должно решить проблему.
Куда именно необходимо вписать этот код — вот в этом остался основной теперь вопрос.
10 комментариев
Если всё-таки есть непреодолимое желание выставить длинный таймаут (хотя это равносильно лечению температуры переразметкой градусника) — надо править engine\modules\database\Database.class.php
Там в районе 45 строки есть функция GetConnect, после строк
дописываем еще один костыль
(не проверял, но должно работать)
а хостинг то вроде очень даже неплохой был — sweb.
спасибо за все ответы, буду искать чего получше и постабильнее.
Я выставлял таймаут когда у меня между двумя запросами идет парсинг или какая нибудь длительная работа с данными.