Mysql 臭虫#1146-表';xxx.xxxxx';不';不存在
我正在使用windows XP。我正在phpMyAdmin中使用其内置的创建表功能创建表, 我的数据库名是Mysql 臭虫#1146-表';xxx.xxxxx';不';不存在,mysql,phpmyadmin,mysql-error-1146,Mysql,Phpmyadmin,Mysql Error 1146,我正在使用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' does
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
可能有什么问题?列名在表中必须是唯一的。同一个表中不能有两个名为
asd
的列。从CMD运行&%path%=设置为mysql/bin
mysql\u升级-u用户-ppassword
我过去也遇到过同样的问题。所有这些都是在将数据库文件移动到新位置和更新mysql服务器之后发生的。所有带有InnoDB引擎的表都从我的数据库中消失了。我试图重新创建它们,但mysql告诉我,在我重新创建数据库并重新启动mysql服务之前,表“xxx”一直不存在
我认为有必要阅读InnoDB表二进制文件。我也有同样的问题,在网上找不到很好的提示,所以我将此分享给你和所有需要的人 在我的情况下,我将一个数据库(所有文件:frm,myd)复制到MySQL数据文件夹中的数据文件夹中(在家中使用Wamp)。在我想要创建一个表并且错误
Ѻtable'…'不存在之前,一切都是正常的代码>
我在MySQL版本5.5.16中使用Wamp 2.1
我的解决方案:
将数据库导出到文件
验证导出的文件是否真的正常
在我有问题的地方删除数据库
创建一个与上一个数据库同名的新数据库
将文件导入数据库
对我来说,问题解决了。现在,我可以再次创建表而不会出错。检查文件名。
您可能需要在phpmyadmin中创建一个新数据库,该数据库与您尝试导入的数据库相匹配。我也遇到了同样的问题。我试图在mysql中创建一个表,但得到了相同的错误。我重新启动了mysql服务器并运行了该命令,在重新启动后能够创建/迁移表。今天,我面临着同样的问题。我当时处境非常困难,但我用什么id创建了一个不同名称的表,例如(modulemaster没有创建,然后我创建了modulemaster1),在创建表之后,我只是重命名表。最近我遇到了同样的问题,但是在Linux服务器上。数据库崩溃了,我通过简单地复制/var/lib/mysql/*
(wamp中的模拟mysql数据文件夹)从备份中恢复了它。恢复后,我不得不创建新表,并得到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对我来说工作正常 我今天遇到了同样的问题。我试图创建一个表users
,并被提示错误1146(42S02):表用户不存在
,这没有任何意义,因为我只是试图创建表
然后,我试图通过键入drop table users
来删除该表,因为我知道它将失败,因为它不存在,我得到了一个错误,即未知表用户
。在得到这个错误后,我再次尝试创建表,神奇的是,它成功地创建了表
我的直觉是,我可能以前创建过这个表,但不知怎么的,它并没有被完全清除。通过明确地说DROP TABLE
我设法以某种方式重置了内部状态?但这只是我的猜测
简而言之,尝试删除您正在创建的任何表,然后再次创建它。在我的例子中,即使该表在PhpMyAdmin中不可见,我也运行了此命令:
DROP TABLE mytable
然后
创建表代码>
为我工作 我遇到这个问题是因为触发器不工作。.在我删除触发器后工作。正如上面提到的那样,复制table.frm文件和ibdata1文件对我有效
简言之:
关闭DB explorer客户端(例如工作台)
停止MySQL服务(Windows主机)
制作几乎所有内容的安全副本李>
将表文件(例如mytable.frm)的副本保存到schema数据文件夹(例如MySQL服务器/data/{yourschema})
将ibdata1文件的副本保存到数据文件夹(即MySQL服务器/data)
重新启动MySQL服务
检查DB explorer客户端中的表现在是否可访问、可查询等
在那之后,一切都很好。(如果你成功了,别忘了备份!)在我的例子中,MySQL的参数<代码>小写字母表名称已配置=0
它导致与使用大写有关的查询无法工作。对我来说,它是一个表名大写/小写