MySQL 创建表错误 - 表不存在
Posted
技术标签:
【中文标题】MySQL 创建表错误 - 表不存在【英文标题】:MySQL Create Table Error - Table Doesn't Exist 【发布时间】:2013-08-04 18:18:01 【问题描述】:我是 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,但仍然遇到同样的错误 :(
【问题讨论】:
【参考方案1】:我遇到了同样的问题。在我幸运地找到一个简单的解决方案之前,我实际上阅读了这个帖子。我试图删除我的表并且它有效,在你的情况下你的表是用户:
删除表用户;
表不存在,自然MySQL报错:
错误代码:1051。未知表“用户”
但是我再次运行了我的 CREATE TABLE 语句并且它起作用了。希望其他人每次都能验证这个作品吗?比查看错误日志要容易得多,尤其是如果您不是最出色的 DBA/系统管理员/黑客。
【讨论】:
比在文件系统中乱搞要容易得多!谢谢! 为我工作。谢谢 也为我工作。如果您不关心表数据备份,这是一种优雅的方式。 也适用于我,如果它对您不起作用,请尝试在同一脚本中的 CREATE 命令之前编写 DROP 命令。【参考方案2】:这看起来像一个数据字典问题。您可以通过检查错误日志来获取更多信息。 (参见 MySQL 文档here)。
可能,您有一个孤立的表。如果是这样,解决方法是在不同的数据库中创建同名表,然后将.frm
文件复制到当前数据库。然后你可以DROP
表,随后的CREATE
应该会成功。有关解决此类问题的更多详细信息可以找到here
【讨论】:
我刚刚卸载了mysql服务器并删除了旧表,现在修复了这个问题。 非常感谢您的帮助 :) 干杯 :)【参考方案3】:问题是... 你有一个带有“InnoDB ENGINE”的数据库...... 我的解决方案是... 你必须有一个“MyISAM ENGINE”, 如何改变?...发现你的环境可能与
# find / -name my.cnf
在 LINUX 上,只需将以下行添加到
vim /etc/mysql/my.cnf
添加:
default-storage-engine= MyISAM
然后重启mysql:
service mysql restart
【讨论】:
这行得通。非常感谢。但我没有在我的conf中改变它。仅在查询中添加以上是关于MySQL 创建表错误 - 表不存在的主要内容,如果未能解决你的问题,请参考以下文章