找回密码
 注册
搜索
热搜: 回贴
微赢网络技术论坛 门户 数据库 MySQL 查看内容

利用mysql数据库中的TMD表修复数据库

2010-5-21 19:13| 发布者: admin| 查看: 1548| 评论: 0|原作者: 匿名|来自: 互联网

利用mysql数据库中的TMD表修复“is marked as crashed and last (automatic?) repair failed”的错误

昨天不知是什么原因,网站的MYSQL数据库突然提示“is marked as crashed and last (automatic?) repair failed”采用phpmyadmin进行查看时,发现有个表由原来28M的变成了8M,并且提示这个表正在使用中。开始试着用phpmyadmin直接进行修复操作,但问题仍然存在。
开始认为文件损坏不能再修复回来。只好找来备份的SQL文件还原到一个临时的数据库中,并复制这个表的MYD替换掉正在使用的数据库中。虽然网站能访问了,可数据却不存并,备份中里的数据也显示不出来。

今天中午思来想去,通过搜索找到一些方法,尝试修复。经过多次的尝试和折腾,竟然给我搞掂了。这里把重点的过程及命令总结出来,以备后需及方便有需要的朋友。

第一步:停掉MYSQL服务,net stop mysql。
第二步:保险起来,把整个数据库文件夹都备份起来。
第三步:打开数据库所在的文件夹,找到损坏表的系统自动生成的文件(xxxx.TMD),改名(xxx.MYD).
第四步:执行修复命令:myisamchk -r D:MYSQLdata数据库名称*.MYI (记住:这里mysql服务是停止的)
第五步:启动MYSQL服务,net start mysql。
第六步:再执行命令: mysqlcheck -o -r 数据库名称 -u root -p (适当改为你的MYSQL管理员名称),运行后提示输入密码。
第七步:进入phpmyadmin,选中刚才损坏的表,执行检查和修复。(我的做此步之前仍然提示损坏,现在执行时就不会出错,并且能修复好。未经上面步骤,通用phpmyadmin修复时提示出错。)
全部完成。

最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 07:25 , Processed in 0.154606 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部