背景:误删除了.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
问题解决