1.创建数据
create table t3(
id int) engine=myisam;
insert into t3 values(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11);
2.删除frm模拟数据文件损坏
rm t3.frm
cp t3.MYI ../
cp t3.MYD ../
3.在数据库中重建同名的表,结构也要相同
flush table t3;
create table t3(
id int) engine=myisam;
4.将.MYI和.MYD文件拷贝回来
cp ../t3.MYI .
cp ../t3.MYD .
5.登陆数据库,并执行修复命令
repair table t3;
6.检查恢复结果
通过.frm恢复表结构,也适用于.MYI文件的第一个16k块被破坏,或包含不正确的信息,或文件丢失
1.将.frm文件拷贝到数据库目录中
mv t3.MYD t3.MYI ../
2.创建两个空文件,对应.MYD和.MYI文件
touch t3.MYD t3.MYI
chown mysqlysql t3.MYD t3.MYI
3.登陆数据库,并执行恢复命令
repair table t3 use_frm;
4.检查恢复结果
create table t3(
id int) engine=myisam;
insert into t3 values(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11);
2.删除frm模拟数据文件损坏
rm t3.frm
cp t3.MYI ../
cp t3.MYD ../
3.在数据库中重建同名的表,结构也要相同
flush table t3;
create table t3(
id int) engine=myisam;
4.将.MYI和.MYD文件拷贝回来
cp ../t3.MYI .
cp ../t3.MYD .
5.登陆数据库,并执行修复命令
repair table t3;
6.检查恢复结果
通过.frm恢复表结构,也适用于.MYI文件的第一个16k块被破坏,或包含不正确的信息,或文件丢失
1.将.frm文件拷贝到数据库目录中
mv t3.MYD t3.MYI ../
2.创建两个空文件,对应.MYD和.MYI文件
touch t3.MYD t3.MYI
chown mysqlysql t3.MYD t3.MYI
3.登陆数据库,并执行恢复命令
repair table t3 use_frm;
4.检查恢复结果