免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 850 | 回复: 0
打印 上一主题 下一主题

修复数据表 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-12 12:41 |只看该作者 |倒序浏览
mysql repair table-Can't open file: [table]mytable.MYI
也午有许多人遇到过类似的Can't open file: '[tables]mytables.MYI这样的错误住处却不知道怎么解决它,多数情况下,数据库被破坏只是指索引文件受到了破坏,真正的数据坏掉的情况非常少.大多数形式的数据库破坏的修复相当简单,修复的方式也有三种.
1 REPAIR TABLE SQL statement  (mysql服务必须处于运行状态)
2 命令mysqlcheck(mysql服务可以处于运行状态)
3 命令myisamchk(必须停掉mysql服务或者所操作的表处于不活动状态)

在修复表的时候,最好先作一下备份.所以你需要两倍于原始表大小的硬盘空间
1 用"repair table" 方式修复
语法: repair tables 表名[选项]
[选项] 如下
QUICK  用在数据表还没有被修改的情况下,速度最快
EXTENDED 试图去恢复每个数据行,会产生一些垃圾数据行,万般无奈的情况下用
USE_FRM 用在.MYI文件丢失或者头部受到破坏的情况下,利用.FRM的定义来重建索引.
多数情况下,简单得用"repair table tablename"不加选项的就可以搞定问题,但是是当.MYI文件丢失或者头部受到破坏时,这样的方式不管用,需要使用USE_FRM选项
mysql> repair table tablename USE_FRM;
2 用mysql内建的命令mysqlcheck来修复
当mysql服务在运行时,也可以用mysql内建的命令mysqlcheck来修复.
语法:  mysqlcheck -r 数据库名 表名  --uuser --ppass

利用mysqlcheck 可以一次性修复多个表.只要在数据库名后列出相应表名(用空格隔开).或者数据库名不加表名,将会修复数据库中的所有表.



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/88611/showart_2092413.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP