15.2.4.1 Повреждённые таблицы MyISAM
Несмотря на то, что формат таблицы MyISAM очень надёжен (все изменения в таблице, внесённые оператором SQL, записываются до возврата результата оператора), повреждённые таблицы всё же могут возникнуть, если произойдут следующие события:
Процесс mysqld был прерван во время записи.
Произошло непредвиденное отключение компьютера (например, компьютер был выключен).
Аппаратные сбои.
Вы используете внешнюю программу (например, myisamchk), чтобы изменить таблицу, которую в это же время изменяет сервер.
Ошибка программного обеспечения в коде MySQL или
MyISAM.
Типичные симптомы повреждённой таблицы:
-
При выборе данных из таблицы возникает следующая ошибка:
Incorrect key file for table: '...'. Try to repair it
Запросы не находят строки в таблице или возвращают неполные результаты.
Вы можете проверить состояние таблицы MyISAM с помощью оператора CHECK TABLE и исправить повреждённую таблицу MyISAM с помощью REPAIR TABLE. Когда mysqld не запущен, вы также можете проверить или исправить таблицу с помощью команды myisamchk. См. Раздел 13.7.2.2, «Оператор CHECK TABLE», Раздел 13.7.2.5, «Оператор REPAIR TABLE» и Раздел 4.6.3, «myisamchk — Утилита обслуживания таблиц MyISAM».
Если ваши таблицы часто повреждаются, вы должны попытаться определить причину. Самое важное — выяснить, произошла ли порча таблицы в результате непредвиденного завершения работы сервера. Вы можете легко проверить это, поискав в журнале ошибок последнее сообщение restarted mysqld. Если такое сообщение есть, вероятно, повреждение таблиц произошло из-за аварийного завершения работы сервера. В противном случае повреждение могло произойти во время нормальной работы. Это ошибка. Вы должны попытаться создать воспроизводимый тестовый случай, который демонстрирует проблему. См. Раздел B.3.3.3, «Что делать, если MySQL постоянно зависает» и Раздел 5.8, «Отладка MySQL».
© 2025 Oracle
Licensed under the GPLv2 License.