Иногда при сбое записи в дисковую систему на сервере, а также при внезапной перезагрузке сервера может возникнуть неприятная ситуация с таблицей БД MySQL. В основном это происходит с большими и как следствие самыми важными таблицами.
Таблица не восстанавливается ни командой REPAIR TABLE, ни через командную строку myisamchk.
Может выдаваться примерно такие записи в консоль:
Found block with too small length at NNNNNNN; Skipped Found link that points at NNNNNNNNNNNNNNN (outside data file) at NNNNNNN Not enough memory for blob at NNNNNNN (need NNNNNNNNNNNNN) Operation failed
Что же делать?
В данном случае необходимо отключить проверку на размер записи при восстановлении таблицы.
ключ —max-record-length=len
Skip rows larger than the given length if myisamchk cannot allocate memory to hold them.
Перевод: Пропуск записей больше заданной длины, если myisamchk не может выделить память для их обработки.
myisamchk --max-record-length=0 -r название_таблицы
И все должно восстановиться!
Берегите себя и свои данные, почаще делайте бекапы!
Комментарии закрыты.