错误? #1146 - 表'xxx.xxxxx'不存在
我正在使用Windows XP。我正在使用其内置的创建表功能在phpMyAdmin中创建一个表, 我的数据库名称为ddd
。错误? #1146 - 表'xxx.xxxxx'不存在
它会产生下面的代码:
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一直告诉我1146: Table 'xxx' doesn't exist
,直到我重新创建数据库并重新启动了mysql服务。
我认为有必要阅读InnoDB表二进制文件。
从CMD &%PATH%=运行设置到MySQL/bin中
mysql_upgrade -u user -ppassword
确保你在本地主机上,这将尝试升级 – 2011-06-14 11:37:56
我刚刚得到了很多错误表'xxx.u8nxi_updates'不存在 – McVitas 2017-11-13 19:33:30
我有同样的问题,不能通过网络得到一个好的提示,所以我分享了这个为你和所有需要的人。
在我的情况下,我将数据库(所有文件:frm,myd)复制到MySQL数据文件夹中的数据文件夹(在家中使用Wamp)。所有的事情都可以,直到我想创建一个表并且出现错误#1146 Table '...' doesn't exist!
。
我使用MySQL版本5.5.16的Wamp 2.1。
我的解决办法:
导出到文件的数据库;
验证导出的文件是否确实OK !!;
删除我有问题的数据库;
创建一个与上一个名称相同的新数据库;
将文件导入数据库。
因为问题已解决。现在我可以再次创建表格而没有错误。
通过复制frm,myd myi文件,您只复制了数据库模式。在INNODB表中,实际数据驻留在“ibdata1”文件中。如果你已经复制了'ibdata1'和'ib_logfile?'文件,它就可以工作。 – pprakash 2012-12-10 13:37:03
检查文件名。
您可能需要在phpmyadmin中创建一个新数据库,该数据库与您尝试导入的数据库相匹配。
文件名根本无关紧要。 – 2012-11-21 15:49:31
问题已经解决,谢谢 – Shaheer 2012-11-22 06:14:12
@Shaheer为你解决,但其他人呢? – 2013-03-10 03:30:38
我有同样的问题。我试图在mysql中创建一个表,并得到相同的错误。我重新启动了mysql服务器并运行了该命令,并且能够在重新创建/迁移表之后进行操作。
今天我面临同样的问题。我处于非常困难的情况,但是我创建了一个具有不同名称的表,例如(modulemaster没有创建,然后我创建modulemaster1),创建表后,我只是重命名表。
最近我有同样的问题,但在Linux服务器上。数据库崩溃了,我从备份恢复它,基于简单地复制/var/lib/mysql/*
(模拟mysql数据文件夹中的wamp)。恢复后,我不得不创建新表,并得到MySQL错误#1146。我试图重新启动mysql,它说它无法启动。我查看了mysql日志,发现mysql根本没有访问数据库文件的权限。我检查了/ 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
无效[错误代码:1146.表'wp_commentmeta'不存在' – user2473015 2015-11-18 06:40:25
我有同样的问题。它发生在Windows启动错误后,似乎有些文件由于这个而被损坏。我没有从保存的脚本再次导入数据库,它工作正常。
今天我遇到了同样的问题。我试图创建一个表users
,并提示ERROR 1146 (42S02): Table users doesn't exist
,这没有任何意义,因为我只是想创建表!
然后我试图通过输入DROP TABLE users
来删除表,知道它会失败,因为它不存在,我得到一个错误,说Unknown table users
。得到这个错误之后,我试着再次创建表格,神奇地,它成功创建了表格!
我的直觉是,我可能以前创建过这个表,并且它没有完全清除。通过明确地说DROP TABLE
我设法重置内部状态?但这只是我的猜测。
简而言之,请尝试删除您正在创建的任何表,然后再次创建它。
在我来说,我跑这个命令即使表在phpMyAdmin是不可见的:
DROP TABLE mytable
然后
CREATE TABLE....
为我工作!
这需要是答案。 – 2015-07-30 14:57:10
我有这个问题,因为触发器不工作..工作后,我删除了触发器。
由于pprakash上面提到,复制table.frm文件和ibdata1中文件是为我工作。 (我刚才谈到这一评论,但50分此SO要求意味着我必须提供一个解决方案,即使它只是一个现有的翻版......奇怪。)
简而言之:
- 关闭DB Explorer客户端强调的文本(例如Workbench)。
- 停止MySQL服务(Windows主机)。
- 制作几乎所有的安全副本!
- 将表文件副本(例如mytable.frm)保存到模式数据文件夹(例如MySQL服务器/数据/ {yourschema})中。
- 将ibdata1文件的副本保存到数据文件夹(即MySQL服务器/数据)。
- 重新启动MySQL服务。
- 检查您的数据库资源管理器客户端中的表现在可以访问,可查询等。
之后,一切都很好。 (不要忘记备份,如果你有成功!)
在我的情况下,MySQL的参数; lower_case_table_names
已配置为= 0
。
它会导致与使用大写字母相关的查询不起作用。
尝试创建简单的表与一列,并与初级/键/约束 – 2011-06-14 10:46:43
@Ravi,我试过了,但没有帮助!,这是代码:CREATE TABLE ddd'.'mwrevision'('nnn' INT NOT NULL)ENGINE = INNODB;和火灾查询相同的错误 – Shaheer 2011-06-14 10:49:09
什么app/cmd/shell/browser/WB使用? – 2011-06-14 10:54:56