0

导致这种奇怪的一系列事件如下:

mysql> DROP TABLE `mytest`;

ERROR 1051 (42S02): Unknown table 'mytest'

mysql> CREATE TABLE `mytest` (id INT NOT NULL PRIMARY KEY,_modified DATETIME, KEY(_modified));

ERROR 1050 (42S01): Table '`mydb`.`mytest`' already exists

mysql> show tables like '%mytest%';

Empty set (0.01 sec)

我最初认为这可能是数据目录中的文件权限问题,但我已经检查并且应该存在以表示该表的文件不存在。

这是 mysql 5.1 版,myisam 表。

我可能还应该提到,这发生在大型数据库的自动夜间恢复期间,该数据库作为 gzip 压缩的 tar 存档从备份位置提取,解压缩到 mysql 数据目录中,然后针对新目录中的所有 MYI 文件运行 myisamchk。

经过 2 小时的调查,我仍然不知道是什么原因造成的 - 任何帮助都将不胜感激。

4

3 回答 3

2

尝试这个

    CREATE TABLE `mytest` IF NOT EXISTS ELSE TRUNCATE `mytest`

使用TRUNCATE清空表并重置基数,而不是删除表并重新创建它。

于 2013-07-06T20:40:36.167 回答
0

尝试这个 :

mysql> DROP TABLE '`mydb`.`mytest`' 
于 2013-07-06T20:41:57.690 回答
0

看起来像损坏的索引或定义文件。

尝试停止 mysql,进入 mysql 的数据目录,删除特定表的文件,然后重新启动 mysql。注意不要删除其他文件。

如果它是 InnoDB 类型,那么修复损坏表的一些命令可能会有所帮助。

IIRC 它是CHECK TABLE ...REPAIR TABLE.

于 2013-07-07T00:26:22.963 回答