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

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


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

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

В тех случаях когда появляются ошибки 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
Ссылка на комментарий
Поделиться на других сайтах

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

Зарузка...

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

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

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