设为首页 收藏本站
查看: 837|回复: 0

[经验分享] 解决MySQL Table '***' is marked as crashed and should be repaired问题

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-4-23 09:33:27 | 显示全部楼层 |阅读模式
昨天后端程序在读取数据库信息时候,日志报相关数据表不能读取和写入数据,进入 MySQL数据库发现 Table ‘./wordpress/wp_posts’ is marked as crashed and should be repaired 错误,因为qqtexas中有数据表被损坏了,所以读取不了数据:
1
2
3
4
5
6
7
8
9
10
11
# mysql -u root -p
Enter password:

mysql> use qqtexas;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select * from wp_posts;
ERROR 145 (HY000): Table './wordpress/wp_posts' is marked as crashed and should be repaired
mysql> quit



方法一:

修复 MySQL 数据库数据表问题可以由 mysqlcheck 来解决,先用 mysqlcheck 查看一下:
1
2
# mysqlcheck -u root -p qqtexas
Enter password:



然后添加 --auto-repair 参数自动修复,最好修复前备份一下数据库:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 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
qqtexas.wp_options                           OK
qqtexas.wp_postmeta                          OK



为了安全起见,以下两种方法不建议在生产环境中使用
#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



方法二:
使用命令myisamchk修复数据库的MYI文件
1
2
3
4
5
[iyunv@ST-Server ~]# myisamchk -c -r /usr/local/mysql/data/qqtexas/zt_action.MYI
- recovering (with sort) MyISAM-table '/usr/local/mysql/data/qqtexas/zt_action.MYI'
Data records: 21810
- Fixing index 1
- Fixing index 2



如果上述操作还不行,就使用 -f 强制执行修复;即
myisamchk -c -r -f /usr/local/mysql/data/qqtexas/zt_action.MYI


mysqlcheck说明:
mysqlcheck客户端可以检查和修复MyISAM表。它还可以优化和分析表。

mysqlcheck的功能类似myisamchk,但其工作不同。主要差别是当mysqld服务器在运行时必须使用mysqlcheck,而myisamchk应用于服

务器没有运行时。使用mysqlcheck的好处是不需要停止服务器来检查或修复表。使用myisamchk修复失败是不可逆的。

Mysqlcheck为用户提供了一种方便的使用SQL语句CHECK TABLE、REPAIR TABLE、ANALYZE TABLE和OPTIMIZE TABLE的方式。它确定

在要执行的操作中使用使用哪个语句,然后将语句发送到要执行的服务器上。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-59899-1-1.html 上篇帖子: Heartbeat(基于crm)+NFS+Mysql实现mysql的高可用 下篇帖子: mysql参数优化辅助工具之tuning-primer.sh should
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表