Несмотря на то, что формат таблиц
MyISAM очень надежен (все
изменения в таблице записываются
до возвращения значения
оператора SQL), таблица, тем не
менее, может быть повреждена.
Такое происходит в следующих
случаях:
Процесс mysqld
уничтожен во время
осуществления записи;
Неожиданное отключение компьютера (например, если выключилось электропитание);
Ошибка аппаратного обеспечения;
Использование внешней
программы (например
myisamchk) на открытой
таблице.
Ошибка программного
обеспечения в коде MySQL или
MyISAM.
Типичные признаки поврежденной таблицы следующие:
Во время выбора данных из
таблицы выдается ошибка
Incorrect key file for table: '...'. Try to
repair it.
Запросы не находят в таблице строки или выдают неполные данные.
Проверить состояние таблицы
можно при помощи команды CHECK
TABLE. См. раздел See
Раздел 4.4.4, «Синтаксис CHECK TABLE ».
Для восстановления поврежденного
файла можно применить команду
REPAIR TABLE. See
Раздел 4.4.5, «Синтаксис REPAIR TABLE ». Таблицу можно
восстановить и в случае, когда не
запущен mysqld, при помощи
команды myisamchk. See
Раздел 4.4.6.1, «Синтаксис запуска myisamchk».
Если таблицы повреждены значительно, необходимо выяснить причину произошедшего! See Раздел A.4.1, «Что делать, если работа MySQL сопровождается постоянными сбоями».
Сначала следует определить,
послужил ли причиной повреждения
таблицы сбой mysqld (это
можно легко проверить, просмотрев
последние строки restarted
mysqld в файле ошибок
mysqld). Если дело не в
этом, то необходимо составить
подробное описание
произошедшего. See
Раздел E.1.6, «Создание контрольного примера при повреждении таблиц».
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
© 1995-2005 MySQL AB. All rights reserved.
