正如标题所说,完整的mysql备份后:
mysqldump -uuser -ppass --all-databases > all-dbs.sql
我怎样才能从那个转储中只恢复一个特定的数据库?像什么?
mysql -uuser -ppass --restore-db-from-alldbs-backup specific_db < all-dbs.sql
最佳答案
MySQL 没有提供自动执行此操作的工具。
下面的示例输出 test
数据库但跳过其他数据库。
awk 'BEGIN { do_print=1; } \
/^CREATE DATABASE/ || /^USE / { \
if (match($0, "`test`")) { do_print=1; }
else { do_print=0; } } \
{ if (do_print) { print; } }' all_dbs.sql \
| mysql -uuser -ppass
您可能还想考虑使用 mydumper ,它会为所有表输出单独的文件,因此很容易恢复您想要的文件。另请参阅更好的文档:http://centminmod.com/mydumper.html
关于mysql - 从 `-all-databases` mysql 转储中恢复特定数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27159684/