MySQL:Table xxx is marked as crashed and should be repaired五个办法
查看MySQL错误日志看到
Table xxx is marked as crashed and should be repaired
https://ma.ttias.be/mysql-myisamchk-error-myisam_sort_buffer_size-is-too-small/
如果此方法报错可以直接使用:REPAIR TABLE rank_all USE_FRM
上面方法执行了好长时间没有动静,那就停掉命令吧!
然后换成另一种方法:myisamchk -c -r ../data/rank_all
然后会报错说是 myisamchk: error: myisam_sort_buffer_size is too small
解决办法:myisamchk --recover --quick /var/lib/mysql/sgk09/sgk\@002dqqpass_old --sort_buffer_size=2G
注意:在执行的过程中可能需要花费一点时间,耐心等待!此方法经过测试。
这三种修复方法如下所示:
% myisamchk --recover --quick /path/to/tblName 最快
% myisamchk --recover /path/to/tblName
% myisamchk --safe-recover /path/to/tblName 最慢
解决办法如下
第一种:
1、首先进入mysql命令台:
mysql -u root -p 回车 输入密码
2、查询所有的库
mysql> show databases;
3、进入数据库“sp1”是库名
mysql> use sp1;
4、check table table111(table111是出现错误的表)用来检查出现问题的表的状态,出现错误就正常
5、然后用repair table table111
6、再用check table newabout 检查一下就ok了
第二种:
使用mysqlcheck修复数据表
mysqlcheck -u root -p aaa Enter password:
备份数据库
# mysqldump -u root -p aaa > qqtexas.sql Enter password: 添加 --auto-repair 参数自动修复 # mysqlcheck -u root -p aaa --auto-repair Enter password:
第三种:
使用Navicat Premium修复数据库
- 首先连接上数据库,选择表
- 右键->Maintain(维护)->Repair Tables(修复表)->Extended(扩展)

修复所有数据库(表)
复制代码 代码如下:
MySQLcheck -A -o -r -p
mysqlcheck --all-databases -r
其他办法:
一、Windows
找到mysql的安装目录的bin/myisamchk工具,在命令行中输入:
myisamchk -c -r ../data/位置/表名.MYI
然后myisamchk 工具会帮助你恢复数据表的索引,问题就解决了。(解决不了重启数据服务就好)。
或者
找到mysql的安装目录的bin/myisamchk工具,右击【以管理员身份运行】修复下即可。
二、PHPmyadmin
点击PHPmyadmin上的repair按纽就自动修复了,

浙公网安备 33010602011771号