我是相当新的 MySQL,我得到了一个非常有趣的错误,我不能找到任何帮助,通过谷歌和堆栈溢出搜索。
我在 MacOS 10.8.3上运行一个本地服务器 MySQL 5.6.10,并通过 Navicat 的基本数据库管理我的数据库。
我得到的错误是,在运行和管理我的数据库几天/几周之后,有些触发器(看起来不完全)删除我使用 Navicat 中的查询创建的一些表。
当我尝试使用这些表运行查询时,Navicat 会警告我,这个特定的表不存在。到目前为止一切顺利——好的部分来了:
当我尝试创建这个表(例如名为“ temp”的表)时,会得到以下错误消息:
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
这意味着建议我放弃表空间,但是当我尝试这样做时,表并不存在。有没有可能在 DISCARD 查询没有检查的不同位置存在某种类型的表残余?有没有人知道是什么引发了这一切——看起来完全是随机的?
正如我所说,我对这个问题还是个新手,一无所知。我怀疑重启我的笔记本电脑,即重置我的本地 MySQL 服务器,或者用户权限可能与此有关,但我只是在这里假设。