MySQL创建表错误:Tablespace for table xxx exists.

MySQL创建表错误:Tablespace for table xxx exists.

错误详情

在一个本地数据库中创建表时失败,再次创建时出现错误:Tablespace for table xxx exists.提示表空间已经存在了。

使用DESC命令查看表时提示表不存在。

直接到本地存储中找到数据库存放地址,发现存在xxx.ibd和xxx.frm文件,将两个文件全部删除,再次创建表成功。

错误原因

在MySQL中,如果存储引擎是InnoDB,在data目录下会看到2类文件: .frm 和 .ibd
(1)frm–表结构的文件
(2)ibd–表数据和索引的文件。该表的索引(B+树)的每个非叶子节,点存储索引,叶子节点存储索引和索引对应的数据

存储引擎是myisam,在data目录下会看到3类文件: .frm 、.myi 和.myd
(1) *.frm–表定义,是描述表结构的文件.
(2) .MYD–“D”数据信息文件,是表的数据文件。
(3) *.MYI–”"索引信息文件,是表数据文件中任何索引的数据树

因此在第一次创建时生成了ibd文件和frm文件,但是写入失败了

第二次创建的时候有同名文件,无法创建ibd和frm文件

错误解决

删除相关ibd和frm文件,重新创建即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值