mysql表空间被占用,同名表无法创建或导入

删除mysql表(用的是innodb)时没有用drop table命令,只是简单删除表目录,,这导致表空间还存在,这样就不可以加同名表进去。
当要重新导入新的同名表或者创建新的同名表时,会提示错误
Error : Tablespace for table '`database`.`temp`' exists. Please DISCARD the tablespace before IMPORT.

然而,我用
DROP TABLE temp;
ALTER TABLE temp DISCARD TABLESPACE;

仍然提示:
Error : Unknown table 'database.temp'
Error : Table 'database.temp' doesn't exist

解决方法:去mysql数据目录那里将对应的ibd文件移动到其他位置
$ ls /usr/local/homebrew/var/mysql/Mazda6

table1.frm
table1.idb
table2.frm
table2.ibd
table3.idb <- problem table, no table3.frm
table4.frm
table4.idb

$ mkdir /tmp/mysql_orphans
$ mv /usr/local/homebrew/var/mysql/Mazda6/table3.ibd /tmp/mysql_orphans/

转载于:https://www.cnblogs.com/centos-python/articles/8522209.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值