суббота, 13 декабря 2014 г.


Восстановление таблицы MySQL

Как-то раз после очередного переноса виртуальной машины с одного сервера на другой, повредилась таблица MySQL. В PHPMYADMIN, при обращении к таблице выдавалась следующая ошибка:

Ответ MySQL:
#145 - Table './snmptt/cabletesteveryport' is marked as crashed and should be repaired



Для восстановления таблицы воспользуемся командной строкой:
1. Проверяем всю базу данных monitorallne
#mysqlcheck -uroot -p --databases monitorallne 
...
monitorallne.2pingstatus
warning : Table is marked as crashed
warning : 1 client is using or hasn't closed the table properly
error : Checksum for key: 2 doesn't match checksum for records
error : Corrupt
...

В выводе присутствуют ошибки, связанные с таблицей 2pingstatus

2. Восстанавливаем поврежденную таблицу:
#mysqlcheck -r -uroot -p monitorallne 2pingstatus

В другой базе snmptt при проверке обнаружились такие ошибки:

1. Проверка таблицы

#mysqlcheck -uroot -p snmptt
...
snmptt.cabletesteveryport
warning : Table is marked as crashed
warning :  client is using or hasn't closed the table properly
error : Record at pos: 45860564 is not remove-marked
error : record delete-link-chain corrupted
error : Corrupt


2. Восстанавливаем по той же схеме:
#mysqlcheck -r -uroot -p snmptt cabletesteveryport