我最近在办公室的一台监控服务器上遇到停电事故。 导致某些数据库表损坏的中断的结果。
我通过使用“use_frm”选项成功修复了3-4个表,但仍然有3个似乎严重损坏,并且没有响应mysql REPAIR命令(带或不带use_frm)
mysql> REPAIR TABLE poller_item; +-------------------+--------+----------+---------------------------------------------- ------------+ | Table | Op | Msg_type | Msg_text | +-------------------+--------+----------+------------------------------------------------- ---------+ | cacti.poller_item | repair | Error | Incorrect information in file: './cacti/poller_item.frm' | | cacti.poller_item | repair | error | Corrupt | +-------------------+--------+----------+------------------------------------------------- ---------+
在这种情况下,有没有其他的方式来修复表?
MySQL版本
mysql Ver 14.14 Distrib 5.1.49, for debian-linux-gnu (x86_64) using readline 6.1
Incorrect information in file: './cacti/poller_item.frm'
.frm文件存储表格格式。 尝试这个:
poller_item.frm , poller_item.MYD , poller_item.MYI的备份 poller_item表 poller_item中的CREATE TABLE语句重新创buildpoller_item表(使用您正在运行的相应版本) poller_item.MYD , poller_item.MYI复制到datadir中 先备份,然后尝试尝试MYISAMCHK(1):
myisamchk --recover tbl myisamchk --save-recover tbl