mysql repaired_MySQL Table ‘***’ is marked as crashed and should be repaired 彻底解决

今天起来发现站点打开异常缓慢,基本上10秒能打开就打开,打不开就爆数据库连接错误“Database connection error”,或者直接来个“502 Bad Gateway”。第一感觉是被攻击了,马上进行了排查(5个命令检查Linux中内存使用情况),查清原因后马上处理。

其中之一就是“ MySQL Table '***' is marked as crashed and should be repaired”,进入相应数据库查看大概有十个表都报这个数据表损坏错误,现在修复它,提供两种修复方式 。

先备份整个数据库

方法一:使用mysqlcheck修复数据表

# mysqlcheck -u root -p qqtexas

Enter password:

1

2

# mysqlcheck -u root -p qqtexas

Enterpassword:

备份数据库,添加 --auto-repair 参数自动修复

# mysqldump -u root -p qqtexas > qqtexas.sql

Enter password:

# mysqlcheck -u root -p qqtexas --auto-repair

Enter password:

wordpress.wp_term_taxonomy

error : Table upgrade required. Please do "REPAIR TABLE `wp_term_taxonomy`" or dump/reload to fix it!

wordpress.wp_terms

error : Table upgrade required. Please do "REPAIR TABLE `wp_terms`" or dump/reload to fix it!

wordpress.wp_usermeta

error : Table upgrade required. Please do "REPAIR TABLE `wp_usermeta`" or dump/reload to fix it!

wordpress.wp_users

error : Table upgrade required. Please do "REPAIR TABLE `wp_users`" or dump/reload to fix it!

Repairing tables

qqtexas.wp_commentmeta OK

qqtexas.wp_comments OK

qqtexas.wp_links OK

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

# mysqldump -u root -p qqtexas > qqtexas.sql

Enterpassword:

# mysqlcheck -u root -p qqtexas --auto-repair

Enterpassword:

wordpress.wp_term_taxonomy

error:Tableupgraderequired.Pleasedo"REPAIR TABLE `wp_term_taxonomy`"ordump/reloadtofixit!

wordpress.wp_terms

error:Tableupgraderequired.Pleasedo"REPAIR TABLE `wp_terms`"ordump/reloadtofixit!

wordpress.wp_usermeta

error:Tableupgraderequired.Pleasedo"REPAIR TABLE `wp_usermeta`"ordump/reloadtofixit!

wordpress.wp_users

error:Tableupgraderequired.Pleasedo"REPAIR TABLE `wp_users`"ordump/reloadtofixit!

Repairingtables

qqtexas.wp_commentmetaOK

qqtexas.wp_commentsOK

qqtexas.wp_linksOK

为了安全起见,以下两种方法不建议在生产环境中使用

#mysqlcheck -a -o -r -p //检查优化并修复所有的数据库

#mysqlcheck -A -o -r 数据库名称 -p //修复指定的数据库

1

2

#mysqlcheck -a -o -r -p //检查优化并修复所有的数据库

#mysqlcheck -A -o -r 数据库名称 -p //修复指定的数据库

参数含意:

-a = Analyse given tables. //分析数据表

-c = Check table for errors //检查数据库中错误(损坏)的表

-o = Optimise table //优化数据表

-r = Can fix almost anything except unique keys that aren’t unique // 修复损坏的数据表

-m = –medium-check

1

2

3

4

5

-a=Analysegiventables.//分析数据表

-c=Checktableforerrors//检查数据库中错误(损坏)的表

-o=Optimisetable//优化数据表

-r=Canfixalmostanythingexceptuniquekeysthataren’tunique// 修复损坏的数据表

-m=–medium-check

方法二:使用Navicat修复数据库

连接上数据库,选择表

右键->Maintain(维护)->Repair Tables(修复表)->Extended(扩展)

dc08242c7ae1abe8ca0a86e947ffa562.pngRepairing MySQL Database

216b2448877b9be9ddac5e59096f75d4.png修复MySql数据表(Repairing MySQL Database)

Windows和OSX版本是一样的操作,因为没Windows环境,自己截图截出来的太大(400KB),所以用了网图。Windows操作那个使用的是Quick(快速)修复,为了保险起见,建议使用Extended(扩展)修复数据表。

等一会,会提示修复完成,现在你再打开数据库看,应该都正常了。

参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值