MYSQL表存在奇怪

时间:2013-07-06 20:37:09

标签: mysql

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

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表。

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

经过2个小时的调查后,我仍然对可能造成这种情况的原因感到遗憾 - 任何协助都会受到赞赏。

3 个答案:

答案 0 :(得分:2)

试试这个

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

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

答案 1 :(得分:0)

试试这个:

mysql> DROP TABLE '`mydb`.`mytest`' 

答案 2 :(得分:0)

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

尝试停止mysql,转到mysql的数据目录,删除特定表的文件,然后重启mysql。小心不要删除其他文件。

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

IIRC CHECK TABLE ...REPAIR TABLE