Errno 121关于恢复mysqldump以清空数据库

时间:2017-05-03 13:49:32

标签: mariadb

我们的一位MariaDB用户决定通过shell脚本复制数据库,该脚本将mysqldump的输出传递给另一个表。

如果将mysqldump恢复到以前没有创建的数据库,它就可以正常工作。但是,如果您删除该数据库,重新创建它,然后再次尝试运行该脚本,则会引发以下错误:

  

第25行的错误1005(HY000):无法创建表格   core_devaddresses(错误:121"写入或更新时重复密钥")   mysqldump:写错了32#

SHOW ENGINE INNODB STATUS产生以下见解:

  

2017-05-03 09:34:19 7f9929fb4b00外键约束出错   表格core_dev的创建。addresses。一个外键约束   名称core_devaddresses_ibfk_2已存在。 (注意   内部InnoDB添加了数据库名称'在用户定义的前面   约束名。)注意InnoDB的FOREIGN KEY系统表存储   约束名称不区分大小写,具有MySQL标准   latin1_swedish_ci整理。如果您创建表或数据库   名称仅在字符情况下有所不同,然后在约束中发生冲突   名字可以发生。解决方法:使用显式命名约束   独特的名字。

但是,core_dev数据库完全为空:

  

MariaDB [(无)]>在core_dev中显示表格;   空集(0.01秒)

问题是什么?我无法在任何其他MariaDB 10.1服务器上复制此问题。唯一的区别是这个特定的一个在CentOS 6上运行,而其他的在CentOS 7上运行。

0 个答案:

没有答案