最近一个客户的网站无法正常访问,提示Table ‘XXX’ is marked as crashed and should be repaired,这个意思是XXX这个数据表被标记为有问题需要修复。

一般是由于数据库的频繁查询或数据库服务器突然断电造成的,解决方法有很多种,具体如下:

1.如果安装了phpmyadmin的话,在phpmyadmin中找到对应的数据表,点击修复按钮等待修复完成即可。

2.如果没有安装phpmyadmin或者上面的办法无效,那么找到mysql的安装目录的bin/myisamchk工具,在命令行中输入:

myisamchk -c -r ../data/tablename/tablename.MYI

注意要将tablename换成你错误提示中的表名,然后最好重新启动一下数据库。

另外你也可以选择以下三种命令来修复出错的数据表:

myisamchk --recover --quick  ../data/database/tablename
myisamchk --recover  ../data/database/tablename
myisamchk --safe-recover  /../data/database/tablename

第一条命令是快速修复;第二条命令为正常修复;第三条命令为安全修复,修复速度最慢,但是最安全,一般用来修复一些其它方法所不能修复的问题。