Вы здесь

Восстановление поломанной Базы данных Mysql

Перед выполнением любых операций сделайте бэкап!
Файлы MySQL базы данных бывают:

  • `tbl_name.frm` - Файл определения MyISAM таблицы (формы) - здесь хранится сама структура таблицы, потеря этого файла критична.
  •  `tbl_name.MYD` - Файл данных MyISAM таблицы - здесь хранятся непосредственно данные в чистом виде, потеря этого файла критична.
  • `tbl_name.MYI` - Индексный файл MyISAM таблицы - здесь хранятся табличные индексы индексы, потеря этого файла не критична, при наличии двух предыдущих файлов индексный файл можно восстановить (начиная с версии MySQL 4.0.2, то тут можно воспользоваться REPAIR ... USE_FRM).
  • `tbl_name.TMD` - Временные файлы MyISAM таблицы - их наличие при выключенном сервере свидетельствует об аварийном завершении работы MySQL сервера.
  • `tbl_name.TMM` - Временные файлы MyISAM таблицы - создаются во время оптимизации таблиц MySQL сервера.

Если не получается востановить стандартной утилитой  
mysqlcheck -u root -c -r -o -A -p
1. Останавливаем MySQL сервер!
#service mysqld stop
2. Выполняем команду
#myisamchk -r -q /var/db/mysqld/dbname/tbl_name.MYI
- check record delete-chain - recovering (with sort) 
MyISAM-table 'C:\mysql\data\dbname\tbl_name.MYI'
Data records: 7121379 - Fixing index
1 - Fixing index
2 - Fixing index
3 Data records: 12600790 
В начале было 7121379 записей, после ремонта индексного файла обнаружились все потерянные записи 12600790.
3. Выполняем команду
#myisamchk /var/db/mysqld/dbname/tbl_name.MYI
Checking MyISAM file: C:\mysql\data\dbname\tbl_name.MYI
Data records: 12600790
Deleted blocks: 0 - check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1
- check data record references index: 2
- check data record references index: 3 - check record links
Файл БД исправен, ошибок не найдено, все 12600790 записи на месте.
4. Запускаем MySQL сервер!
#service mysqld start
Вот и все 
 
Материал взят отсюда