我是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并仍然得到同样的错误:(
答案 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