Перейти к контенту

Исправление таблиц базы


Рекомендуемые сообщения

Когда вам необходимо воспользоваться приведенными ниже инструкциями?

В тех случаях когда появляются ошибки mySQL:

mysql error: Can't write to XXXXXX.FRM или XXXXXX.MYD

mysql error: Can't open file: XXXXXX.MYD или XXXXXX.MYI

 

А что это за ошибки?

Разбираемся с ошибками базы данных

 

Что делать если появились такие ошибки?

Решаем проблему одним из следующих способов:

[1] Скачиваем прикрепленный скрипт. Затем Вам необходимо распакованный скрипт repare.php закачать в корневую папку форума на хосте. Далее запустить скрипт из браузера таким образом: http://yourdomain.com/path_to_your_forum/r...?html=1&check=1

[2] С использованием утилиты mysqlcheck (MySQL 3.23.38 или выше). В shell/telnet/ssh когда MySQL запущен, а форум закрыт, вводим:

mysqlcheck -r -u имя_пользователя -pпароль имя_базы

где:

имя_пользователя - Ваше имя пользователя базы данных имя_базы

пароль - пароль базы имя_базы. Обратите внимание что пароль нужно указывать сразу после -p без каких-либо разделяющих символов.

имя_базы - база которую следует восстанавливать.

[3] При помощи myisamchk MySQL должен быть остановлен, в shell/telnet/ssh вводим:

myisamchk -r -u root -p имя_базы

[4] Используя скрипт phpMyAdmin. Используйте SQL запрос:

REPAIR TABLE имя_базы;

repair.zip

Ссылка на комментарий
Поделиться на других сайтах

  • Ответы 113
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

  • 2 недели спустя...

Vanish

СПАСИБО!

СПАСИБО!!!!!!

СПАСИБО!!!!!!!!!

ОГРОМНОЕ СПАСИБО!!!!!

СПАСИБО!!!!!

СПАСИБО!!!!!!!!!!!!!

ОГРОМНЕЙШЕЕ СПАСИБООО!!!!!!!!!!!!!!!!!!!!!!!

СПАСИБО!!!!!!!!!!!!!!

(no copys)

СПАСИБО! У меня слетела БД а rapair её починил!!! УРА!!!!!!!!!!!!

СПАСИБО!!!!!!!!!!!!!!!!!!!

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...
  • 1 месяц спустя...
  • 3 недели спустя...
phpmyadmin ведь есть функция REPAIR

Есть... но мне например phpmyadmin вломы заливать, т.к. я на модеме.

А вообще у кого хостинг на Си-панеле у всех есть phpmyadmin.

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...

Пару советов

Так по доброте душевной.

Написали мы тут кодик полезный , так как у вас инвижн боард то он как раз и для вас подойдет.

 

Иногда базы рушаться от одновременных запросов, вы наверняка с этим сталкивались.

Так как у нас клиентов на хостинге много, у всех возникают вопросы к хостерам, что мол с моей базой ? а ну чините, а мы то тут и не причем. Так вот надоело это всё , вообщем смотрите.

 

Данная ошибка связана с недоработками в скриптах Invision Board, не

выполняющего блокировку таблиц при выполнении нескольких пследовательных

операций записи в базу данных. В связи с этим, при одновременном постинге

двоих или более пользователей форума происходит нарушение целостности

индексных файлов MySQL.

 

Для исправления данной ошибки, необходимо выполнить переиндексацию таблиц.

Для этого в Invision Board предусмотрена специальная функция в панели

администратора (http://www.softboard.ru/admin.php) - SQL Management -> mySQL

Toolbox -> Repair selected tables.

 

Для автоматизации данного процесса, можно изменить скрипты Invision Board,

чтобы они автоматически выполняли переиндексацию при ошибке mySQL # 1016 -

такой обработчик можно поместить в файл www/sources/Drivers/mySQL.php, в

метод fatal_error() класса db_driver:

 

После строк

 

if ($this->return_die == 1)
{
$this->error = mysql_error();
return TRUE;
}

 

поместить следующий код:

 

// Repair tables if indexes are broken - BEGIN
if ( mysql_errno() == 1016 )
{
$QueryID = mysql_query("SHOW TABLES", $this->connection_id)
or die("SQL Error! Please contact administrator");
$SQLRow = array();
$TableList = array();
while ( ! ( ( $SQLRow = mysql_fetch_row($QueryID) ) === false ) ) {
$TableList[] = $SQLRow[0];
}
foreach($TableList as $TableName) {
mysql_query("REPAIR TABLE $TableName", $this->connection_id)
or die("SQL Error! Please contact administrator");
}
if (!headers_sent()) {
header("Location: ".$_SERVER['REQUEST_URI']);
} else {
die("Error! Please reload page...");
}
}
// Repair tables if indexes are broken - END

 

С уважением ,

Комиссаров Владимир

BEST- HOSTING, System Administrator.

www.Best-Hosting.ru

Изменено пользователем theIggs
Ссылка на комментарий
Поделиться на других сайтах

  • 1 месяц спустя...

Просто слов нет! У нас в России самые свветлые головы всё же! :D

 

Спасибо огромное!

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...

Privet , baza danih vidaet tkauyu oshibku>

 

 

mySQL query error: SELECT COUNT(DISTINCT(p.pid)) as posts, COUNT(DISTINCT(p.topic_id)) as topics FROM Forum_posts p WHERE p.post_date > '1072818000' AND queued <> 1 AND forum_id IN(0,3,4,5,6,7,8,36,10,11,42,12,13,45,15,16,17,18,19,37,21,22,23,24,26,27,28,29,

30,31,32,33,34,40,38,39,41,43,44)

 

mySQL error: Can't open file: 'Forum_posts.MYD'. (errno: 145)

mySQL error code:

Date: Wednesday 31st of December 2003 05:39:41 PM

 

 

Esli ya zdelau vishe skazannoe to ona doljna vostanovitsya? Ili ne stoit etogo delat?

Ссылка на комментарий
Поделиться на других сайтах

Novenkiy да скачайте repair.zip, распакуйте в директорию форума и просто запустите repair.php. Дальше по инструкции и скрипт востановит вам таблицу.

А на будущее сделайте изменения в файле mySQL.php согласно http://www.ibresource.ru/forums/index.php?...indpost&p=17026

 

Удачи! С праздником.

Ссылка на комментарий
Поделиться на других сайтах

  • 2 месяца спустя...
Спасибо!
Ссылка на комментарий
Поделиться на других сайтах

  • 2 месяца спустя...

Народ форум не пашет, пишет

 

Can't open file: 'ibf_posts.MYI'. (errno: 145)

mySQL error code:

Date: Sunday 16th of May 2004 11:43:03 PM

 

Где это постс и походу надо права на запись поставить, а в какой файл???

Ссылка на комментарий
Поделиться на других сайтах

malaya

Знаю решение етой проблемьі. у самого недавно такая случалась, столько с таблицой ib_forums

Решении простое.

вьіполнить запрос:

REPAIR TABLE ibf_posts

Ссылка на комментарий
Поделиться на других сайтах

malaya

И заодно Остапа поблагодари. Он меня тоже в етом как раз вьіручил. :D респект

Ссылка на комментарий
Поделиться на других сайтах

malaya У меня были проблемы с этим раз в три дня примерно поначалу. Помогла установка новее версии MySQL http://dev.mysql.com/downloads/mysql/4.0.html на тот момент у меня стояла 4.0.14, а заменил её на 4.0.16 ... По сей день ( 4 мес ) ни одна таблитса не слетела ... Тьфу-Тьфу ... :D
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.