我有一个非常有趣的案例 . 我的几个InnoDB表已经被破坏了 . 表的.frm文件消失了,只留下了.ibd文件 .
我认为没问题,我将从备份中恢复这些表,所以我删除了.frm文件并尝试创建具有相同名称的新表,但每次我得到“表已经存在”时,.ibd文件获取已创建,但.frm没有 .
基本上现在我无法在给定数据库中创建具有给定名称的InnoDB表 . 我唯一的解决方案是创建MyISAM表,但我仍然想知道如何解决这个问题 .
以下是事件的详细日志:
尝试创建表格:
CREATE TABLE employee(employee_id varchar(20)NOT NULL,PRIMARY KEY(employee_login_id)USING BTREE)ENGINE = InnoDB DEFAULT CHARSET = utf8 PACK_KEYS = 1 ROW_FORMAT = COMPRESSED
表已经存在
尝试删除表以显示它不存在:
DROP TABLE员工
表不存在
我手动删除了employee.ibd文件(没有employee.frm文件)
再次尝试#1并再次收到“表已存在”
我重启了MySQL,没有变化 . 我重启了整个服务器,没有变化 .
我不能再在此表空间中创建名为“employee”的InnoDB表 .
任何的想法?