mysql版本:5.6.43-log
处理过程:
尝试了三种方法恢复:
注意:在导入前禁用外键约束,防止导入过程中外键校验导致建表失败,导入完成后开启外键约束(当然MySQL中还是不建议使用外键的):
set foreign_key_checks=0; -- 禁用外键
set foreign_key_checks=1; -- 开启外键
(1)使用--one-database参数导入dysub数据
nohup mysql -uwsnimp -pXXXXXX -hXXXXXX dysub --one-database err_wsnimp_XXX.log &
结论:此种方式可导入指定数据库的全部数据,但是对于非指定数据库的数据库也会被建立,但没有表和数据信息,不推荐。
(2)使用sed命令从备份文件中摘出来指定数据库的相关sql语句:
匹配出dysub库相关语句:sed -n '/^-- Current Database: `dysubprod`/,/^-- Current Database: `/p' XXXXXXX.sql > dysubbak_20190801.sql &如果是指定多个库,用;分隔多个匹配的命令即可:sed -n '/^-- Current Database: `dysub1`/,/^-- Current Database: `/p;/^-- Current Database: `dysub2`/,/^-- Current Database: `/p' XXXXXXX.sql >dysubbak_20190801.sql&
结论:此种方式可