问题背景:数据库innodb引擎的表的.frm文件意外消失
如下图所示创建基本实验条件
接下来进入到data目录下的mysql_test文件夹
手动删除a.frm文件 rm -rf a.frm
这时候新建表和删除表分别会出现如下所示信息,这是因为.frm文件找不到,但是ibdata中还有表的信息
mysql> create table a (a int(10));
ERROR 1050 (42S01): Table 'a' already exists
mysql> drop table a;
ERROR 1051 (42S02): Unknown table 'mysql_test.a'
这时候我们可以进行如下所示操作,在另一个库新建同样表结构的表
然后将.frm文件拷到mysql_test目录下:cp -a a.frm ../mysql_test
接下来查看表
这样我们的表就可以正常操作了