mysql - 从 `-all-databases` mysql 转储中恢复特定数据库

标签 mysql database mysqldump

正如标题所说,完整的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/

相关文章:

sql-server - SQL Server - 表元数据

mysql查询结果。将三列值转换为结果中的一行并按第一列值排序

MySQL 错误 1452

php - 禁用 max_user_connections 限制

Mysql按当前日期过滤数据

mysqldump:写入时出现 errno 32

mysqldump 只导出一张表

mysql - 使用 SAS 主键

php - 修改AJAX PHP数据库示例

mysql - 使用 mysqldump 忽略一张表?