MySQL中表创建失败的原因之一

  • Post author:
  • Post category:mysql



报错信息:

ERROR 1005 (HY000): Can’t create table ‘example_db.example_table’ (errno: 150)


故事背景:


从生产环境example_db数据库往测试环境对应的库导入恢复数据。因为前一天使用mysqldump工具对生产环境整个实例中所有数据库做过一次备份,考虑到再做一次针对example_db库的备份比较耗时,于是决定直接使用sed工具从原来的完整备份中截取出example_db对应的部分,然后使用该部分逻辑备份文件恢复测试环境的example_db数据库.所使用的命令如下:

<pre name="code" class="plain">sed -n '/-- Current Database: `example_db`/,/-- Current Database: `example_db2`/p' fullbakcup.sql > /data/tmp/example_db.sql

其中fullbakcup.sql为已经存在的使用mysqldump做的全备份文件,example_db2为备份文件中紧随example_db对应的备份内容之后的数据库,该命令的作用是从备份文件中截取出example_db对应的备份内容。至此,一切看似没有问题。但是通过如下命令执行时,报出如下错误:

mysql -uuser -p -htest.db.service.com example_db < /data/tmp/example_db.sql
ERROR 1005 (HY000): C



版权声明:本文为zyz511919766原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。