背景:误删除了.frm,.ibd文件后,又不小心重启了数据库服务,这时候该如何处理
基础环境:

然后进入到mysql_test文件夹
删除表结构文件和数据文件:rm -rf a.frm a.ibd
重启数据库服务:service mysqld restart
从错误日志中也能看到启动报错和官方提供的解决办法

这时候发现mysql_test.a表没有,
第一种情况:
如下图所示,我们在mysql_test2建立一个相同表结构的表a

然后将数据目录mysql_test2下的a.frm文件拷贝到数据目录mysql_test下
![]()
接下来切换到mysql_test库删除表正常操作就可以了

第二种情况:
重启之后我们在mysql_test库做如下操作
![]()
这时候进入到数据目录mysql_test,会发现新生成了a.ibd这个文件
这时候需要进行几个步骤
1.use mysql_test2
2.create table a (a int(10));
3.mysql_test2]# cp -a a.frm ../mysql_test
4.use mysql_test
5.drop table a;
6.mysql_test]# rm -rf a.ibd
7.service mysqld restart
问题解决
本文介绍在误删除MySQL数据库的.frm和.ibd文件并重启服务后,如何通过两种方法恢复表结构和数据,包括从错误日志获取信息、重建表结构、复制文件和重启服务。
1703

被折叠的 条评论
为什么被折叠?



