虫子? #1146-表\'xxx.xxxxx\'不存在

| 我正在使用Windows XP。我正在使用其内置的创建表功能在phpMyAdmin中创建表, 我的数据库名称是
ddd
。 它生成以下代码:
CREATE TABLE  `ddd`.`mwrevision` (

`asd` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`sddd` INT NOT NULL
) ENGINE = INNODB;
并且出现以下错误:
MySQL said:     
#1146 - Table \'ddd.mwrevision\' doesn\'t exist 
可能是什么问题?     
已邀请:
        我过去也有同样的问题。将数据库文件移动到新位置并更新mysql服务器后,一切都发生了。具有InnoDB引擎的所有表都从我的数据库中消失了。我试图重新创建它们,但是mysql一直告诉我3英镑,直到我重新创建数据库并重新启动mysql服务为止。 我认为有必要阅读有关InnoDB表二进制文件的信息。     
        我遇到了同样的问题,无法通过网络获得很好的提示,因此我为您和所有需要的人分享了这一点。 在我的情况下,我将数据库(所有文件:frm,myd)复制到MySQL数据文件夹中的数据文件夹(在家中使用Wamp)。一切正常,直到我要创建表并出现错误“ 4”为止。 我将Wamp 2.1与MySQL 5.5.16一起使用。 我的解决方案: 将数据库导出到文件; 验证导出的文件是否真的可以!! 将数据库放在我有问题的地方; 创建一个与上一个相同名称的新数据库; 将文件导入数据库。 对我来说,问题已解决。现在,我可以再次创建表而不会出现错误。     
        重新启动MySQL对我来说很好。     
        就我而言,即使表在PhpMyAdmin中不可见,我也运行了此命令:
DROP TABLE mytable
然后
CREATE TABLE.... 
为我工作!     
        检查文件名。 您可能需要在phpmyadmin中创建一个与要导入的数据库匹配的新数据库。     
        我有同样的问题。我试图在mysql中创建一个表,并得到相同的错误。我重新启动了mysql服务器并运行了命令,并在重新创建后能够创建/迁移表。     
        今天,我面临着同样的问题。我当时处在非常困难的情况下,但是我用不同的名称创建了一个表的名称,例如(未创建modulemaster,然后创建modulemaster1),并且在创建表后,我只是做了重命名表。     
        我今天遇到了同样的问题。我试图创建一个表
users
,并被提示输入
ERROR 1146 (42S02): Table users doesn\'t exist
,这没有任何意义,因为我只是试图创建表! 然后,我尝试通过键入ѭ9to删除该表,因为它不存在将导致失败,并且我得到一个错误,说
Unknown table users
。收到此错误后,我尝试再次创建表,并且神奇地,它成功创建了表! 我的直觉是,我之前可能已经创建了该表,但是并没有完全清除它。通过明确地说出“ 11”,我设法以某种方式重置了内部状态?但这只是我的猜测。 简而言之,尝试删除正在创建的任何表,然后再次创建它。     
        正如pprakash所述,复制table.frm文件和ibdata1文件对我来说很有效。 (我本来会对此评论发表评论,但是SO要求50分意味着我必须提供一种解决方案,即使这只是对现有解决方案的重新提法...很奇怪。) 简而言之: 关闭您的DB Explorer客户端强调的文本(例如Workbench)。 停止MySQL服务(Windows主机)。 制作几乎所有内容的安全副本! 将表文件(例如mytable.frm)的副本保存到架构数据文件夹(例如MySQL Server / data / {yourschema})。 将ibdata1文件的副本保存到数据文件夹(即MySQL Server / data)。 重新启动MySQL服务。 检查您的数据库浏览器客户端中的表现在可访问,可查询等。 之后,一切都很好。 (如果成功,请不要忘记备份!)     
        列名在表中必须唯一。同一张表中不能有两列名为“ 12”的列。     
        从CMD和%path%= set运行到mysql / bin
mysql_upgrade -u user -ppassword
    
最近,我遇到了同样的问题,但是在Linux Server上。数据库崩溃了,基于简单的复制
/var/lib/mysql/*
(wamp中的模拟mysql DATA文件夹),我从备份中恢复了数据库。恢复后,我不得不创建新表并得到mysql错误#1146。我试图重新启动mysql,但它说无法启动。我检查了mysql日志,发现mysql根本没有对其DB文件的访问权限。我检查了/ var / lib / mysql / *的所有者信息,并得到了
\'myuser:myuser\'
(myuser是我)。但是应该是
\'mysql:adm\'
(也是自己的开发人员机器),所以我将所有者更改为\'mysql:adm \'。在此mysql正常启动后,我可以创建表或执行其他任何操作。 因此,在移动数据库文件或从备份还原后,请检查mysql的访问权限。 希望这可以帮助...     
        我面对这个问题的原因是因为我有两个\“ models.py \”文件,其中包含略有不同的字段。 我通过以下方式解决了它: 删除其中一个models.py文件 更正对已删除文件的引用 然后运行manage.py syncdb     
        从另一个位置复制mytable.idb表文件后出现此问题。为了解决这个问题,我做了以下工作:
ALTER TABLE mydatabase.mytable DISCARD TABLESPACE;
复制mytable.idb
ALTER TABLE mydatabase.mytable IMPORT TABLESPACE;
重启MySql     
        我遇到过同样的问题。 Windows启动错误后发生了这种情况,似乎某些文件因此而损坏。我确实从保存的脚本中再次导入了数据库,并且工作正常。     
        由于触发器不起作用,我遇到了这个问题。     
        就我而言,MySQL的参数;
lower_case_table_names
配置为
= 0
。 这会导致与使用大写字母有关的查询不起作用。     
        对我来说,这是一个表名大写/小写的问题。我必须确保表案例名称在删除查询中匹配,表
notifications
Notifications
是不同的。我通过将表名大小写与查询和MySQLWorkbench报告的内容进行匹配来解决此问题。 奇怪的是,此错误显示在有效的sql语句中。不知道是什么原因导致这种区分大小写的。也许是自动AWS RDS更新。     

要回复问题请先登录注册