首页 > 代码库 > MYISAM表的.frm、MYI损坏,丢失的修复方法

MYISAM表的.frm、MYI损坏,丢失的修复方法


.frm文件损坏或丢失的恢复

由于frm文件保存着表结构信息,因此当该文件损坏时候,将无法读取改表中的文件,通过以下步骤可以恢复


step1:将存有数据的MYI和MYD文件保存到其他地方

step2:在数据库里重建同命名的表,结构也要一样。 (要保证和以前表结构,存储引擎,数据类型等保持一致)

step3:将MYI和MYD文件拷贝回来

step4:登陆数据库,并执行repair table tablename;

step5:检查恢复结构 

(1,mv t2.MYI t2.MYD /root/test1

  2, >create table t2 (id  int

     >)engine=myisam;

   3,mv t2.MYI t2.MYD /usr/local/mysql/data

   4,>repair table t2;

   5,>desc t2;

   6,>select * from t2;



如果忘记了表的结构,而且损坏,可以通过以下方法恢复表结构,恢复表索引


step1:将.frm  文件拷贝的数据库目录中、

step2:创建两个空文件,对应MYD,MYI文件

step3:登录数据库,并执行 repair table tablename use_frm;

step4:检查恢复结果

(

1, rm -rf t2.MYI t2.MYD

2,touch t2.MYI t2.MYD

3,chow -R mysql.mysql MYI

4,>repair table tablename use_frm 

5,>desc t2;

6,>select * from t2;

)



以上方法也适用于。MYI文件的第一个16K块被破坏,或包含不正确的信息,或文件丢失 

1, rm -rf t2.MYI(已损坏的索引文件

2,touch t2.MYI建一个空的MYI文件

3,chow -R mysql.mysql MYI

4, repair table tablename use_frm

5,>desc t2;

6,>select * from t2;


MYISAM表的.frm、MYI损坏,丢失的修复方法