Что-то с базой
Помогите, пожалуйста.
Выдает кучу ошибок таких вот:
warning: Cannot modify header information - headers already sent by (output started at /users/e/n/encotes.ru/html/drupal/includes/database.mysql.inc:120) in /users/e/n/encotes.ru/html/drupal/includes/common.inc on line 139.
user warning: Got error 127 from storage engine query: UPDATE cache SET data = 'a:4:{s:10:\"path index\";a:156:{s:13:\"admin/filters\";s:1:\"7\";s:18:\"admin/filters/list\";i:-2;s:17:\"admin/filters/add\";i:-3;s:20:\"admin/filters/delete\";i:-4;s:11:\"filter/tips\";s:1:\"3\";s:10:\"admin/node\";s:1:\"8\";s:19:\"admin/node/overview\";i:-7;s:19:\"admin/settings/node\";s:2:\"21\";s:28:\"admin/settings/content-types\";s:2:\"22\";s:4:\"node\";s:1:\"4\";s:8:\"node/add\";s:1:\"9\";s:7:\"rss.xml\";i:-12;s:12:\"system/files\";i:-13;s:5:\"admin\";s:1:\"5\";s:12:\"admin/themes\";s:2:\"10\";s:19:\"admin/themes/select\";i:-16;s:21:\"admin/themes/settings\";i:-17;s:28:\"admin/themes/settings/global\";i:-18;s:32:\"admin/themes/settings/pushbutton\" in /users/e/n/encotes.ru/html/drupal/includes/database.mysql.inc on line 120.
Вчера вечером все было нормально. Сегодня утром уже все плохо. Не пойму что могло случиться.
Может кто знает, помогите!
- Блог
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Комментарии
Та строка, что "Cannot modify header information" - это просто последствие другой ошибки, и на это пока внимания не обращаем.
Другоая строка, что "user warning: Got error 127 from storage engine query..." - уже интереснее: как видим, что-то произошло при попытке проапдейтить кэш меню.
Посмотрите, все ли пункты меню отображаются нормально на странице
admin/menu
(если страница отображается вообще).Если не отображается ничего, то, как вариант, можно попробовать удалить кэш для меню (
cid='menu:<UID>:<LANG>'
) и попытаться опять вывести страницу (правда, скорее всего не поможет).Если не поможет, то сделайте так: в файле
[Drupal root]/include/bootstrap.inc
найдите функцию<?php function cache_set($cid, $data, $expire = CACHE_PERMANENT, $headers = NULL) {/*..*/} ?>
а в ней строку вида:
<?php db_query("UPDATE {cache} SET data = %b, created = %d,..." ?>
и замените
db_query
наdb_queryd
. После этого опять надо очистить кэш для меню и произвести запрос страницы. В начале этой самой страницы будет большой кусок всякого текста - это и есть полный текст запроса, на который ругается MySQL (удобнее его получить, если просмотреть исходный код выданной страницы).Далее Вы сможете проанализировать запрос и возможно увидите, где ошибка. Если с этим возникнут трудности - пишите - попробуем помочь.
Просто пока не обновлялся кэш меню (он не при каждом запросе обновляется) - ошибка не проявлялась, а сегодня или вчера, Вы скорее всего что-то поменяли на сайте (или за ночь, скажем, cron сработал) и кэш очистился, и вот при первой попытке обновиться - ошибка. (Это я сейчас просто в слух размышлял, отчегго так могло произойти...)