.frm,.ibd删除重启后如何处理

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

基础环境:

.frm,.ibd删除重启后如何处理_第1张图片

然后进入到mysql_test文件夹

删除表结构文件和数据文件:rm -rf a.frm a.ibd

重启数据库服务:service mysqld restart

从错误日志中也能看到启动报错和官方提供的解决办法

这时候发现mysql_test.a表没有,

第一种情况:

如下图所示,我们在mysql_test2建立一个相同表结构的表a

.frm,.ibd删除重启后如何处理_第2张图片

然后将数据目录mysql_test2下的a.frm文件拷贝到数据目录mysql_test下

接下来切换到mysql_test库删除表正常操作就可以了

.frm,.ibd删除重启后如何处理_第3张图片

 

第二种情况:

重启之后我们在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)