欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

mysql table is marked as crashed and last (automatic?) repai

程序员文章站 2022-06-13 12:30:28
...

1.同事的服务器在mysqldump备份的时候报错了 这个原因是myisam的表数据太多,在某个时刻, 存放数据的这个MyISAM表数据急速长大. 比如一些log表, 当硬盘写满了.这个时候还在继续写.然后这个表就会lock掉; 或者是mysiam的存储表的文件tbl_name.MYI 损坏了 表现

1.同事的服务器在mysqldump备份的时候报错了

这个原因是myisam的表数据太多,在某个时刻, 存放数据的这个MyISAM表数据急速长大. 比如一些log表, 当硬盘写满了.这个时候还在继续写.然后这个表就会lock掉;

或者是mysiam的存储表的文件tbl_name.MYI 损坏了

表现在你用phpmyadmin打开这个数据库的时候. 该MyISAM表的下面几个字段显示in use.

Rows Type Collation Size
in use

使用mysqldump导出,报错XXX table is marked as crashed and last (automatic?) repair failed.


2. 解决办法.

找到mysql的数据库存放的文件夹,这个可以去mysql的配置文件 my.cnf (linux) my.ini(windows)里面找datadir 关键字,后面的就是路径

找到对应的数据库文件夹,进去后.在该数据库文件夹下执行, 是你想要修复的表名,

#myisamchk -r


如果这样还是不能解决, 停掉mysql,然后

#myisamchk -r -v -f


参考

http://dev.mysql.com/doc/refman/5.0/en/myisam-repair.html