13

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

错误 1146 (42S02):表 'recommend.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));

错误 1146 (42S02):表 'recommend.Users' 不存在

我也尝试使用 Navicat,但仍然出现相同的错误 :(

4

3 回答 3

16

我有同样的问题。在我幸运地找到一个简单的解决方案之前,我实际上阅读了这个帖子。我试图删除我的表并且它有效,在你的情况下你的表是用户:

删除表用户;

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

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

但是后来我再次运行了我的 CREATE TABLE 语句并且它起作用了。希望其他人每次都能验证这个作品吗?比查看错误日志要容易得多,特别是如果您不是最出色的 DBA/系统管理员/黑客。

于 2015-07-19T02:45:42.883 回答
6

这看起来像一个数据字典问题。您可以通过检查错误日志来获取更多信息。(请参阅此处的 MySQL 文档)。

可能,您有一个孤立的表。如果是这样,解决方案是在不同的数据库中创建同名表,然后将.frm文件复制到当前数据库。然后你就可DROP以上表了,一个后续CREATE应该就成功了。可以在此处找到有关解决此类问题的更多详细信息

于 2013-08-03T16:03:20.967 回答
1

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

# find / -name my.cnf

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

vim /etc/mysql/my.cnf 

添加:

default-storage-engine= MyISAM

然后重启mysql:

service mysql restart
于 2018-06-04T02:08:00.037 回答