Mysql表不见重建又提示Tablespace ‘`xxx`.`xxx`‘ exists.

网上一堆抄作业的说的乱七八糟的东西!
 

出现这种情况要么误删,要么可能因为数据库重启的问题。

表不见了,但表空间数据还在的。

按照 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不正确,那就需要把表导出备份,然后删表再重新建再恢复数据。真折腾啊!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值