Что-то с базой

Аватар пользователя Гость Гость (не проверено) 12 октября 2006 в 10:00

Помогите, пожалуйста.
Выдает кучу ошибок таких вот:
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.

Вчера вечером все было нормально. Сегодня утром уже все плохо. Не пойму что могло случиться.
Может кто знает, помогите!

Комментарии

Аватар пользователя rgb rgb 12 октября 2006 в 15:47

Та строка, что "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 (удобнее его получить, если просмотреть исходный код выданной страницы).

Далее Вы сможете проанализировать запрос и возможно увидите, где ошибка. Если с этим возникнут трудности - пишите - попробуем помочь.

Quote:
Вчера вечером все было нормально. Сегодня утром уже все плохо. Не пойму что могло случиться.

Просто пока не обновлялся кэш меню (он не при каждом запросе обновляется) - ошибка не проявлялась, а сегодня или вчера, Вы скорее всего что-то поменяли на сайте (или за ночь, скажем, cron сработал) и кэш очистился, и вот при первой попытке обновиться - ошибка. (Это я сейчас просто в слух размышлял, отчегго так могло произойти...)