【问题标题】:Error with creating tables MySql - (errno: 150)创建表 MySql 时出错 - (errno: 150)
【发布时间】:2015-02-20 12:01:25
【问题描述】:

我对这个脚本有疑问。有人可以帮我吗?

ERROR 1005: Can't create table 'db_new.users_roles' (errno: 150)
SQL Statement:
CREATE TABLE `luxury`.`users_roles` (
  `id` INT NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`))

在数据库中有“用户”和“角色”表。 "users_roles" 是 ManyToMany Hibernate 的表

【问题讨论】:

标签: mysql create-table


【解决方案1】:

像这样尝试一次,

CREATE TABLE IF NOT EXISTS `users_roles` (
  `id` int(12) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

【讨论】:

  • 我删除了 sn-p 因为这不是 HTML。使用sqlfiddle
  • ERROR 1005 (HY000): Can't create table 'luxury.users_roles' (errno: 150)
  • 上面的代码很完美,但我不知道你为什么会出错,一旦阅读了这个问题-答案可能对你有用:stackoverflow.com/questions/16227199/mysql-errno-150
【解决方案2】:

不妨试试下面的

检查您对用户的所有权限。

select user,host from mysql.user;

查找授予特定 MySQL 帐户的权限:

show grants for 'root'@'%';

分析您的表格

analyze table luxury

优化

optimize table luxury

再次运行您的脚本

【讨论】:

    【解决方案3】:

    @Anele 这是你的方法返回的结果:

    mysql> select user,host from mysql.user;
    +------------------+----------------+
    | user             | host           |
    +------------------+----------------+
    | root             | %              |
    | root             | 127.0.0.1      |
    | root             | 95.110.190.185 |
    | root             | ::1            |
    | admin            | localhost      |
    | debian-sys-maint | localhost      |
    | root             | localhost      |
    | root             | luxury         |
    | root             | somehost       |
    +------------------+----------------+
    9 rows in set (0.00 sec)
    
    
    mysql> show grants for 'root'@'%';
    +--------------------------------------------------------------------------------------------------------------------------------+
    | Grants for root@%                                                                                                              |
    +--------------------------------------------------------------------------------------------------------------------------------+
    | GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*CC06F61FF8BD3C6AD10D57E28E340FB097DDD' WITH GRANT OPTION |
    +--------------------------------------------------------------------------------------------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> analyze table luxury;
    +---------------+---------+----------+-------------------------------------+
    | Table         | Op      | Msg_type | Msg_text                            |
    +---------------+---------+----------+-------------------------------------+
    | luxury.luxury | analyze | Error    | Table 'luxury.luxury' doesn't exist |
    | luxury.luxury | analyze | status   | Operation failed                    |
    +---------------+---------+----------+-------------------------------------+
    2 rows in set (0.00 sec)
    
    mysql> optimize table luxury;
    +---------------+----------+----------+-------------------------------------+
    | Table         | Op       | Msg_type | Msg_text                            |
    +---------------+----------+----------+-------------------------------------+
    | luxury.luxury | optimize | Error    | Table 'luxury.luxury' doesn't exist |
    | luxury.luxury | optimize | status   | Operation failed                    |
    +---------------+----------+----------+-------------------------------------+
    2 rows in set (0.00 sec)
    

    【讨论】:

      猜你喜欢
      • 2014-04-05
      • 2010-12-17
      • 2016-06-08
      • 2012-03-17
      • 1970-01-01
      • 1970-01-01
      • 2013-07-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多