网上一堆抄作业的说的乱七八糟的东西!
出现这种情况要么误删,要么可能因为数据库重启的问题。
表不见了,但表空间数据还在的。
按照 data1.table1 为例
恢复方法如下
table1.frm 文件不见了,数据库前端就看不到表。 table1.ibd 数据空间还在可以用这个来恢复数据。
直接在数据库删除会提示没表,新建表也会提示已有表,这个时候需要先骗过数据库可以删表先。前提是先把table1.ibd备份好,否则删表什么都没了。
1,需要有另外一个数据库data2,新建一个表table1,然后把data2的table1的table1.frm 放到 data1 目录里,然后删表。
删完表后重建 表就可以重建了。
重建好后需要删掉没数据的这个表的表空间
ALTER TABLE table1 DISCARD TABLESPACE;
然后再把备份的table1.ibd 放回sji 目录。
然后执行
ALTER TABLE table1 IMPORT TABLESPACE;
就可以把表数据恢复了。
这里还有一个非常大的坑!有可能导致数据库tablespace id不正确,那就需要把表导出备份,然后删表再重新建再恢复数据。真折腾啊!!!!