2011-06-14 92 views
26

我正在使用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 

可能是什么问题?

+0

尝试创建简单的表与一列,并与初级/键/约束 – 2011-06-14 10:46:43

+0

@Ravi,我试过了,但没有帮助!,这是代码:CREATE TABLE ddd'.'mwrevision'('nnn' INT NOT NULL)ENGINE = INNODB;和火灾查询相同的错误 – Shaheer 2011-06-14 10:49:09

+0

什么app/cmd/shell/browser/WB使用? – 2011-06-14 10:54:56

回答

26

我也有同样的问题在过去。在将数据库文件移动到新位置并更新mysql服务器之后,所有事情都发生了。 InnoDB引擎的所有表都从我的数据库中消失。我试图重新创建它们,但是mysql一直告诉我1146: Table 'xxx' doesn't exist,直到我重新创建数据库并重新启动了mysql服务。

我认为有必要阅读InnoDB表二进制文件。

+0

我的问题与你类似,但它有点不同,phpmyadmin表下降(它出现在左边)向我展示了11张桌子,而在右侧只有10张桌子是可见的,我不知道实际上是什么问题可能是phpmyadmin的bug或mysql的错误,但无论如何,我很久以前就解决了这个问题,但使用您指定的方法。所以选择你的答案:) – Shaheer 2011-12-22 05:57:20

+5

这里的关键部分似乎是最后一句 - 重新创建你的数据库并重新启动mysql。 – 2013-04-11 23:12:41

+2

重启mysql解决了我的问题。谢谢。 – apis17 2015-10-27 04:44:19

0

列名在表中必须是唯一的。在同一个表中不能有两个名为asd的列。

+0

我认为这只是由于匿名。 – Gumbo 2011-06-14 10:33:52

+0

它没有工作我试过sddd的第二列名称,但仍然是同样的效果 – Shaheer 2011-06-14 10:34:03

+0

@gumbo,匿名?这是什么? – Shaheer 2011-06-14 10:34:54

0

从CMD &%PATH%=运行设置到MySQL/bin中

mysql_upgrade -u user -ppassword

+0

确保你在本地主机上,这将尝试升级 – 2011-06-14 11:37:56

+0

我刚刚得到了很多错误表'xxx.u8nxi_updates'不存在 – McVitas 2017-11-13 19:33:30

11

我有同样的问题,不能通过网络得到一个好的提示,所以我分享了这个为你和所有需要的人。

在我的情况下,我将数据库(所有文件:frm,myd)复制到MySQL数据文件夹中的数据文件夹(在家中使用Wamp)。所有的事情都可以,直到我想创建一个表并且出现错误#1146 Table '...' doesn't exist!

我使用MySQL版本5.5.16的Wamp 2.1。

我的解决办法:

  1. 导出到文件的数据库;

  2. 验证导出的文件是否确实OK !!;

  3. 删除我有问题的数据库;

  4. 创建一个与上一个名称相同的新数据库;

  5. 将文件导入数据库。

因为问题已解决。现在我可以再次创建表格而没有错误。

+5

通过复制frm,myd myi文件,您只复制了数据库模式。在INNODB表中,实际数据驻留在“ibdata1”文件中。如果你已经复制了'ibdata1'和'ib_logfile?'文件,它就可以工作。 – pprakash 2012-12-10 13:37:03

3

检查文件名。
您可能需要在phpmyadmin中创建一个新数据库,该数据库与您尝试导入的数据库相匹配。

+0

文件名根本无关紧要。 – 2012-11-21 15:49:31

+0

问题已经解决,谢谢 – Shaheer 2012-11-22 06:14:12

+1

@Shaheer为你解决,但其他人呢? – 2013-03-10 03:30:38

3

我有同样的问题。我试图在mysql中创建一个表,并得到相同的错误。我重新启动了mysql服务器并运行了该命令,并且能够在重新创建/迁移表之后进行操作。

1

今天我面临同样的问题。我处于非常困难的情况,但是我创建了一个具有不同名称的表,例如(modulemaster没有创建,然后我创建modulemaster1),创建表后,我只是重命名表。

0

最近我有同样的问题,但在Linux服务器上。数据库崩溃了,我从备份恢复它,基于简单地复制/var/lib/mysql/*(模拟mysql数据文件夹中的wamp)。恢复后,我不得不创建新表,并得到MySQL错误#1146。我试图重新启动mysql,它说它无法启动。我查看了mysql日志,发现mysql根本没有访问数据库文件的权限。我检查了/ var/lib/mysql/*的所有者信息,并得到了'myuser:myuser'(myuser是我)。但它应该是'mysql:adm'(所以是自己的开发人员机器),所以我将所有者更改为'mysql:adm'。在这个mysql正常启动后,我可以创建表或执行任何其他操作。

因此,在移动数据库文件或从备份恢复之后,请检查mysql的访问权限。

希望这有助于...

0

我面临这是因为我有含有略有不同领域的两个“models.py”文件的原因。 我解决它通过:

  1. 删除models.py文件
  2. 修正被删除的文件引用的一个
  3. 然后运行manage.py执行syncdb
0

我复制后得到了这个问题来自另一个位置的mytable.idb表文件。要解决这个问题,我做了以下内容:

ALTER TABLE mydatabase.mytable DISCARD TABLESPACE; 

复制mytable.idb

ALTER TABLE mydatabase.mytable IMPORT TABLESPACE; 

重启MySQL

+1

无效[错误代码:1146.表'wp_commentmeta'不存在' – user2473015 2015-11-18 06:40:25

0

我有同样的问题。它发生在Windows启动错误后,似乎有些文件由于这个而被损坏。我没有从保存的脚本再次导入数据库,它工作正常。

4

重新启动MySQL对我来说工作正常。

+1

也对我有帮助 – hypery2k 2015-08-01 16:23:01

1

今天我遇到了同样的问题。我试图创建一个表users,并提示ERROR 1146 (42S02): Table users doesn't exist,这没有任何意义,因为我只是想创建表!

然后我试图通过输入DROP TABLE users来删除表,知道它会失败,因为它不存在,我得到一个错误,说Unknown table users。得到这个错误之后,我试着再次创建表格,神奇地,它成功创建了表格!

我的直觉是,我可能以前创建过这个表,并且它没有完全清除。通过明确地说DROP TABLE我设法重置内部状态?但这只是我的猜测。

简而言之,请尝试删除您正在创建的任何表,然后再次创建它。

4

在我来说,我跑这个命令即使表在phpMyAdmin是不可见的:

DROP TABLE mytable

然后

CREATE TABLE....

为我工作!

+1

这需要是答案。 – 2015-07-30 14:57:10

0

我有这个问题,因为触发器不工作..工作后,我删除了触发器。

1

由于pprakash上面提到,复制table.frm文件ibdata1中文件是为我工作。 (我刚才谈到这一评论,但50分此SO要求意味着我必须提供一个解决方案,即使它只是一个现有的翻版......奇怪。)

简而言之:

  1. 关闭DB Explorer客户端强调的文本(例如Workbench)。
  2. 停止MySQL服务(Windows主机)。
  3. 制作几乎所有的安全副本!
  4. 将表文件副本(例如mytable.frm)保存到模式数据文件夹(例如MySQL服务器/数据/ {yourschema})中。
  5. ibdata1文件的副本保存到数据文件夹(即MySQL服务器/数据)。
  6. 重新启动MySQL服务。
  7. 检查您的数据库资源管理器客户端中的表现在可以访问,可查询等。

之后,一切都很好。 (不要忘记备份,如果你有成功!)

0

在我的情况下,MySQL的参数; lower_case_table_names已配置为= 0

它会导致与使用大写字母相关的查询不起作用。

相关问题