MySQL创建表错误 - 表不存在

时间:2013-08-03 15:41:11

标签: mysql

我是MySQL的新手,我遇到了一个问题,如果我尝试在新创建的数据库“推荐”中创建一个表,我会收到以下错误:

  

ERROR 1146(42S02):表'recommended.Users'不存在

我在这里和互联网上查了相关帖子,但没有任何帮助。 如果我使用MySQL命令行,我仍会得到同样的错误。

SELECT DATABASE() FROM DUAL;

+------------+

| DATABASE() |

+------------+

| recommend  |

+------------+

1 row in set (0.00 sec)

但是当我运行这个命令时:

mysql> use recommend
Database changed

mysql> CREATE TABLE Users (UserName VARCHAR(20),password VARCHAR(20),PRIMARY KEY(UserName));
  

ERROR 1146(42S02):表'recommended.Users'不存在

我也尝试过使用Navicat并仍然得到同样的错误:(

3 个答案:

答案 0 :(得分:14)

我遇到了同样的问题。在我通过一个简单的解决方案获得幸运之前,我实际上已经阅读了我试图放弃我的桌子并且它有效,在你的情况下你的桌子是用户:

  

DROP TABLE用户;

该表不存在,所以MySQL自然会抱怨:

  

错误代码:1051。未知表'用户'

然后我再次运行我的CREATE TABLE语句并且它有效。希望其他人每次都可以验证这项工作吗?比去错误日志容易得多,特别是如果你不是最好的DBA /系统管理员/黑客。

答案 1 :(得分:5)

这看起来像数据字典问题。您可以通过检查错误日志获取更多信息。 (参见MySQL文档here)。

可能你有一张孤儿表。如果是这样,解决方案是在不同的数据库中创建同名表,然后将.frm文件复制到当前数据库。然后你可以DROP表格,随后的CREATE应该会成功。有关解决此类问题的更多详细信息,请参阅here

答案 2 :(得分:0)

问题是...... 你有一个带有“InnoDB ENGINE”的数据库....... 我的解决方案是...... 你必须有一个“MyISAM ENGINE”, 如何改变?...找到您的环境可能与

# find / -name my.cnf

在LINUX上,只需将以下行添加到

即可
vim /etc/mysql/my.cnf 

添加:

default-storage-engine= MyISAM

然后重启mysql:

service mysql restart