MySQL是给我的悲痛的时候我试试重新建立一个特别表在一个特定的数据库;我认为问题是,地方MySQL有一些记录中的表格的外键和不断试图检查的约束,当我试着重新表。

该数据库中的问题的测试环境,并定期刷新倾倒的产品数据库,滴测试数据库,建立测试数据库,然后应用该产品DB转储到新的试验数据库。

但是昨天晚上当我去做这个过程我突然跑到MySQL errno:121,这是正常相关的一个错误的外交钥匙...如果我尝试用不同的表defnition,而不指定的一个关键,我得到errno:150代替。然而,这仅发生,如果我尝试适用于转储到一个新的数据库的完全相同的名称如旧。如果我创建了一个数据库使用不同的名称从旧的一个(在同一服务器上仍)和适用于倾倒,没有问题。

事实上,我甚至不能创建一个表的完全相同的名称,没有任何钥匙在所有的甚至在一个完全新的数据库。

这个例子表明了问题

mysql> create database test_db;
Query OK, 1 row affected (0.01 sec)

mysql> connect test_db;
Connection id:    1590
Current database: test_db

mysql> create table client_feed_group(id int);
ERROR 1005 (HY000): Can't create table './test_db/client_feed_group.frm' (errno: 150)
mysql> create database new_db_name;
Query OK, 1 row affected (0.00 sec)

mysql> connect new_db_name;
Connection id:    1591
Current database: new_db_name

mysql> create table client_feed_group(id int);
Query OK, 0 rows affected (0.01 sec)

我已经放弃了test_db数据库;这应该删除所有表格和所有记录。然后我创建它,连接,并试图创造的旧表client_feed_group;我得到一个错误。我创建了另一个数据库使用不同的名称,并遵循同样的步骤;这一次没有问题。

有帮助吗?

解决方案

这似乎是一样 这MySQL错误.

该过程远落在评论工作对我来说,那是

  • 创建表再次使用的同一模式,因为旧的,但采用一些引擎
  • 使用改变表中的变更引擎少

此后事出现工作正常;我现在就可以下降的数据库和执行完全恢复,没有任何问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top