1

Тема: Incorrect information in file: ' '...

Всем доброго времени суток.
На сервер MySQL была совершена DoS атака,в результате чего упали некоторые таблицы.
При клике на ней в phpmyadmin пишется эт ошибка.
Incorrect information in file: '.\database\storage.frm.'
Данные хранящиеся в этой табличке очень важны.Можно как нибудь их востановить?(таблички).
Repair table не помогает.

Кривые руки, мозгам покоя не дают

2

Re: Incorrect information in file: ' '...

Curt
Если совсем ничего не помогает, можно попробовать так:
1) сохраняем все содержимое каталога data; удаляем MySQL;
2) удаляем обязательно каталог data, который при деинсталяции остается;
3) устанавливаем MySQL и создаем пустые БД с именами аналогичными существовавшим;
4) останавливаем MySQL;
5) раскладываем все файлы таблиц по каталогам, за исключением вызвавших ошибку;
6) запускаем MySQL.

3

Re: Incorrect information in file: ' '...

Эм...НУ Мускуль я пока что не удалял,просто выносил все три файла таблиц(frm,MYI,MID),удалял таблицу,создавал заного,вставлял файлы MYI MID ,но при октрытии выдавалсь ошибка номер 130(Incorrect file formt)...=\
Что это?

Кривые руки, мозгам покоя не дают

4

Re: Incorrect information in file: ' '...

Пробуйте.
http://dev.mysql.com/doc/refman/5.0/en/repair.html

5

Re: Incorrect information in file: ' '...

Проделал эту статью.
В пункте три сказано про:

Use the table description file to create new (empty) data and index files:
shell> mysql db_name
mysql> SET AUTOCOMMIT=1;
mysql> TRUNCATE TABLE tbl_name;
mysql> quit

Ну я тоже самое делаю в phpmyadmin,таким вот запросом:

SET AUTOCOMMIT=1;
TRUNCATE TABLE storage;

На что мне пишется что запрос удачно выполнен,но MySQL вернула пустой результат ,т.е ноль строк.А по сабжу,как я понял повреждён индексный файл.=\.

Кривые руки, мозгам покоя не дают

6

Re: Incorrect information in file: ' '...

Curt сказал:

На что мне пишется что запрос удачно выполнен

А .MYD файл вы после этого перезаписали? При доступе к таблице, после этого запроса, что пишет?

.frm - это файл описания, в нем хранится структура таблицы. Судя по всему необходимо проделать пункт 4 из статьи, то есть: попробовать создать таблицу с аналогичной структурой, затем подменить .frm и .MYI файлы и затем обновить индексы.

7

Re: Incorrect information in file: ' '...

Эм..Вот я создал точно такую же таблицу,в отдельной базе,перенёс файл FRM и MID,а вот дальше...Как обновить индексы?

Кривые руки, мозгам покоя не дают

8

Re: Incorrect information in file: ' '...

Curt
myisamchk -r -q tbl_name

9 (изменено: Curt, 2008-05-26 20:52:25)

Re: Incorrect information in file: ' '...

М...Теперь файл с данными стал равным 0байт.
Вот что написал myisamchk:

>myisamchk -r -q ..\data\andro\storage
- check record delete-chain
- recovering (with sort) MyISAM-table '..\data\andro\storage'
Data records: 0
- Fixing index 1
- Fixing index 2
myisamchk: error: Couldn't fix table with quick recovery: Found wrong number of
deleted records
myisamchk: error: Run recovery again without -q
MyISAM-table '..\data\andro\storage' is not fixed because of errors
Try fixing it by using the --safe-recover (-o), the --force (-f) option or by no
t using the --quick (-q) flag

После этого я применил  --force

>myisamchk -f ..\data\andro\storage
Checking MyISAM file: ..\data\andro\storage
Data records:       0   Deleted blocks:   39264
myisamchk: warning: Table is marked as crashed and last repair failed
- check file-size
- check record delete-chain
myisamchk: warning: Found 0 deleted space in delete link chain. Should be 117792
0
myisamchk: error: Found 0 deleted rows in delete link chain. Should be 39264
myisamchk: error: record delete-link-chain corrupted
- recovering (with sort) MyISAM-table '..\data\andro\storage'
Data records: 0
- Fixing index 1
- Fixing index 2

Что это за Warning и ошибки?Очевидно из за этого MySQL не видит данные.

А .MYD файл вы после этого перезаписали? При доступе к таблице, после этого запроса, что пишет?

Конечно перезаписывал.

Кривые руки, мозгам покоя не дают

10

Re: Incorrect information in file: ' '...

Curt
К сожалению, мне больше нечем помочь. Я не знаю, что означают эти ошибки, и как их исправить.

11 (изменено: Curt, 2008-05-27 02:33:34)

Re: Incorrect information in file: ' '...

Хм...Ну что ж и на этом спасибо.Кстати,знаю один вопрос,одна тема,но что из себя вообще представляет индексный файл(что в нём должно хранится?)
***edit***
Почитал коментарии к то статье,наткнулся вот на это:

Here's how I got my table back, without the index file (similar to what's described above):
(1) make a backup of the data file (mytable.myd), just in case
(2) create a new empty table with the same structure as the existing table, but no index keys.
(3) copy the .FRM and .MYI files from the new (empty) table over the existing mytable.frm and mytable.myi files.
(4) issue REPAIR TABLE mytable USE_FRM; It is very important to include the USE_FRM clause. That way, MySQL knows to make a new (empty) .MYI file that matches the .MYD file, rather than truncating the .MYD file to match the .MYI file. You will eventually get a message along the lines of "Number of rows changed from 0 to xxxx".
(5) Now you have a working table, with no indexes. Then you can set MAX_ROWS to something appropriate, and try again to make the indexes.

Сообствено так и есть.Таблица работает,но пуста.А как создать индексы за нового?

Кривые руки, мозгам покоя не дают

12

Re: Incorrect information in file: ' '...

Curt
Индексный файл .MYI - хранятся в нем индексы таблицы, которые устанавливаются во время ее создания CREATE TABLE или изменения ALTER TABLE.

Во 2 пункте сказано, что надо создать таблицу со сходной структурой, но без индексов. Не знаю почему так надо делать, но попробовать можно, только не забудьте потом добавить индексы и установить в корректное значение AUTO_INCREMENT, которое должно быть на один больше максимального значения поля имеющего данный параметр.
В 4 пункте написано, что после REPAIR TABLE tbl_name USE_FRM; (аналог myisamchk) должно произойти считывание из файла данных .MYD (Number of rows changed from 0 to xxxx).

У вас при восстановлении происходит очистка файла данных .MYD, значит где-то что-то сделано не так.
Изменения в каталоге data необходимо делать при выключенном MySQL - единственное, что могу еще отметить.

13

Re: Incorrect information in file: ' '...

Изменения в каталоге data необходимо делать при выключенном MySQL - единственное, что могу еще отметить.

А вот я работал из phpMyAdmin,при включённом скуле...Глупый вопрос,но отключать SQL это остановка процеса в менеджере процессов(не ctrl-alt-delete).
И ещё вопрос,тогда как делать запросы если mysql надо отключить?

Кривые руки, мозгам покоя не дают

14

Re: Incorrect information in file: ' '...

Curt
1) Создайте пустую таблицу с аналогичной структурой.
2) Отключите сервис MySQL в службах - Control Panel -> Administrative Tools -> Services.
3) Затем внесите изменения в каталоге data (подмена .frm и .MYI файлов).
4) После, запустите сервис MySQL и выполните запрос на обновление индексов.

15

Re: Incorrect information in file: ' '...

) После, запустите сервис MySQL и выполните запрос на обновление индексов.

Это Repair table `tbl_name` use_frm?

Кривые руки, мозгам покоя не дают

16

Re: Incorrect information in file: ' '...

Curt сказал:

Это Repair table `tbl_name` use_frm?

Да.

17

Re: Incorrect information in file: ' '...

Всё делаю чётко по вашим инструкицям.После Repair table `tbl_name` Use_Frm;
Размер myd становится 0 байт,при этом ни каких ошибок.Статус Ок в phpmyadmin.
У вас есть хоть какие нибудь предположения,что могло поломаться что бы MySQL вот так действовала?

Кривые руки, мозгам покоя не дают

18

Re: Incorrect information in file: ' '...

Curt
Больше идей нет.

19

Re: Incorrect information in file: ' '...

sad.Ну что же тему можно CLOSE.Пришлось по старинке старым бекапом=(

Кривые руки, мозгам покоя не дают