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

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

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

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

12 октября 2006 в 15:47