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按纽就自动修复了,

posted @ 2022-08-31 16:01  星云惊蛰  阅读(475)  评论(0)    收藏  举报