Как определить в чём заключается ошибка ДБ

Тема в разделе "Базы данных", создана пользователем Mimas, 19 авг 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Mimas

    Mimas Создатель

    Регистр.:
    7 апр 2009
    Сообщения:
    33
    Симпатии:
    0
    Недавно сталкнулся с такой проблемой - криворукие техники при переносе на другой сервер повредили форум. При добавлении сообщений и новостей пользователя выкидывало ошибку ДБ. Но не всегда и не у всех(малый процент добавлял без проблем) - в основном при загрузке картинок. У некоторых сообщения добавлялись без проблем, а вот темы вывесить уже не могли. Если человек имел терпение и повторял операцию добавление раз 10, то в конце концов новость добавлялась. Проверки ДБ стандартными методами показывали её номальное состояние. Проверял сам, проверяли кроворукие... Ничего не нашли. Резервную копию до переноса не сохранили :mad:.

    Переустановил форум и соответственно мне полностью очистило ДБ форума. Потом залил файлы старого форума и на новую таблицу импортировал старую (битую) ДБ - и всё заработало без тормозов и глюков.

    Получается что при переносе повредили структуру таблиц?? Но почему проверки не показали ничего. КАк в следующий раз (не дай бог) с точностью определить в чём ошибка ДБ и как исправлять без того, что бы полностью удалять таблицу???

    Если можно поподробнее - для чайника...
     
  2. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    CHECK TABLE `table`;
    REPAIR TABLE `table`;

    Эти запросы вероятно тебе смогут показать ошибку и попытатся исправить ее.
     
  3. Mimas

    Mimas Создатель

    Регистр.:
    7 апр 2009
    Сообщения:
    33
    Симпатии:
    0
    Писал ведь - стандартные методы результатов не принесли. А эти запросы проводятся при выборе проверить/исправить базу данных. Ничего не помогло...
     
  4. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    Ну выложи ошибку БД чтоли, так можно бесконечно гадать, что там ему не нравилось. Имхо по ошибке, можно итак понять что не в порядке в базе.
     
  5. Mimas

    Mimas Создатель

    Регистр.:
    7 апр 2009
    Сообщения:
    33
    Симпатии:
    0
    Ведь я и спрашиваю как её (ошибку) определить, если при проверке (check) всё таблицы показывают состояние ОК.
     
  6. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    Ну раз выкидывало ошибку, значит можно узнать какую..Или там всего лишь было указание на ошибку, без описания?


    Если первое - то выкладывай, если второе - то в библиотеках для работы с БД есть функции дающие номер ошибки и описание

    для mysql они mysql_errno() и mysql_error().
     
  7. Mimas

    Mimas Создатель

    Регистр.:
    7 апр 2009
    Сообщения:
    33
    Симпатии:
    0
  8. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    У IPB начиная с версии 2.2 ошибки складываются в папку cache файлы вида sql_error_log_*.cgi, где вместо * - дата в формате ММ.ДД.ГГ
     
    Mimas нравится это.
  9. Mimas

    Mimas Создатель

    Регистр.:
    7 апр 2009
    Сообщения:
    33
    Симпатии:
    0
    Нашел и буду пробовать разобраться.

    Странно, что логи показываю ошибку только от 16 числа, когда была залита битая ДБ на новые таблицы. А вот от времени переноса нет ни одного файла ошибки...
     
  10. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    http://www.sysman.ru/index.php?showtopic=7099

    Вот есть сборник типичных ошибок БД, посмотрите, вдруг че поомжет.
     
    Mimas нравится это.
Статус темы:
Закрыта.