【问题标题】:MySQL Create Table Error - Table Doesn't ExistMySQL 创建表错误 - 表不存在
【发布时间】: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,但仍然遇到同样的错误 :(

【问题讨论】:

    标签: mysql


    【解决方案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中改变它。仅在查询中添加
    猜你喜欢
    • 2010-12-11
    • 2013-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多