有时我们可能需要恢复特定的数据库,但唯一可用的备份包含所有数据库。
从备份中恢复所有内容可能不是一种选择。
相反,我们将需要仅恢复特定数据库的能力。
使用 -one-database 选项可以从多个数据库的备份中恢复单个数据库。
要恢复单个数据库,请在重播备份时使用 -one-database 或者 -o 选项:
mysql -uroot -p[pwd] --one-database [db1] < [/path/backup.sql]
上述命令使用root用户账号,密码为pwd,只恢复target_db数据库。
用适合我们需要的值替换这些值。
警告:如果备份包含 DROP DATABASE 语句,例如在设置 --add-drop-database 参数时由 mysqldump 生成的语句,请勿使用此方法。
--one-database 参数只考虑设置为默认的数据库,而不考虑哪个数据库实际受到执行语句的影响。
考虑如下的一系列语句:
DROP DATABASE IF EXISTS db1; CREATE DATABASE db1; USE db1; -- various other statements DROP DATABASE db2; CREATE DATABASE db2; USE db2; -- various other statements
由于“DROP DATABASE db2;”当 db1 是默认数据库时出现,使用“--one-database db1”将导致 db2 被删除然后重新创建,但没有任何跟随 USE db2 的语句;将被执行。
所以 db2 将是空的。
日期:2020-09-17 00:11:16 来源:oir作者:oir