Восстановление таблицы MySQL
Как-то раз после очередного переноса виртуальной машины с одного сервера на другой, повредилась таблица MySQL. В PHPMYADMIN, при обращении к таблице выдавалась следующая ошибка:
Ответ MySQL:
#145 - Table './snmptt/cabletesteveryport' is marked as crashed and should be repaired
Для восстановления таблицы воспользуемся командной строкой:
1. Проверяем всю базу данных monitorallne
#mysqlcheck -uroot -p --databases 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
...
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
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