扫盲 2026.10.09 08:29 32 次浏览 0 条评论

MySQL数据表损坏修复方法

MySQL 表坏了最典型的样子就是这句报错:Table 'xxx' is marked as crashed and should be repaired。多半是断电、磁盘写满、进程被强杀搞出来的。

小皮面板最省事,数据库管理里直接点修复按钮。命令行一样能修:

-- 先看状态,确认是不是真坏了
CHECK TABLE `user`;

-- 轻度损坏,快速修
REPAIR TABLE `user` QUICK;

-- 快修不管用就上 EXTENDED,慢慢扫
REPAIR TABLE `user` EXTENDED;

MyISAM 表在线修不好,就停掉 MySQL,用 myisamchk 离线修:

# -r 常规修复,-o 安全修复,-f 强制修
myisamchk -r /www/server/data/库名/user.MYI

InnoDB 表没有 REPAIR 这说,先在 my.ini 里加 innodb_force_recovery=1,能启动就马上 mysqldump 把数据导出来,重建表再导回去。数字从 1 往 6 试,能起来就行。

修之前先停写、先备份,别在坏表上接着写数据。

说点什么 0

行思随记

欢迎来到:行思随记