MySQL error: xxx is marked as crashed and should be repaired
今天运行程序的时候停电了,来电之后再运行,发现弹出一个MySQL的错误对话框:xxx is marked as crashed and should be repaired 。
解决方法如下:
- 可以在PHPADMIN下修复
- 可以使用myisamchk工具
找到MySQL的安装目录的bin/myisamchk工具,在命令行中输入:
myisamchk -c -r ../data/dbname/tablename.MYI
Note:如何找dbname或者tablename
打开MySQL安装目下的my.ini,找到
#Path to the database root
datadir="C:/MySQL Datafiles/Data/"
datadir指的就是数据库的data目录。
要修复所有的表,输入:
myisamchk -c -r ../data/dbname/*.MYI 即可。
然后myisamchk 工具会帮助你恢复数据表的索引。重新启动mysql,问题解决。
问题分析:
错误产生原因,有网友说是频繁查询和更新表造成的索引错误。
还有说法为是MYSQL数据库因为某种原因而受到了损坏,如:数据库服务器突发性的断电、在提在数据库表提供服务时对表的原文件进行某种操作都有可能导致MYSQL数据库表被损坏而无法读取数据。
总之就是因为某些不可测的问题造成表的损坏。