MySQL:如何在忽略几个数据库的情况下恢复转储

Posted

技术标签:

【中文标题】MySQL:如何在忽略几个数据库的情况下恢复转储【英文标题】:MySQL: How to restore a dump ignoring few DBs 【发布时间】:2020-10-20 08:45:08 【问题描述】:

我目前有一个大小约为 2GB 的 mysql 转储,其中包含 10 个数据库。当我恢复这个转储时,我需要跳过几个数据库。我在 Internet 或 *** 中找不到解决方案来在还原转储时忽略特定数据库。

我在 Ubuntu 上用来恢复的命令是:

$ mysql -u root -p < dump.sql

此命令运行良好,但它会恢复所有数据库。有没有办法在执行此操作时使用“--ignore-database”之类的选项忽略一个或多个数据库?例如:DB 忽略“abc_db”。

【问题讨论】:

这能回答你的问题吗? Skip certain tables with mysqldump 见***.com/questions/2342356/… 这能回答你的问题吗? Import single database from --all-databases dump 【参考方案1】:

忽略那些在默认数据库是命令行上命名的数据库时出现的语句。此选项是基本的,应谨慎使用。语句过滤仅基于 USE 语句。

mysql -u someone -p somedatabase < all.sql 

您想要做的是使用如下命令将您的 sql 转储直接提供给 mysql 客户端:

bash > mysql -D your_database < your_sql_dump.sql

如果您有权访问转储所来自的服务器,那么您可以使用mysqldump --ignore-table=database.table_you_dont_want1 --ignore-table=database.table_you_dont_want2 .... 创建一个新的转储

其中 somedatabase 是您要提取的数据库的名称,someone 是 mysql 用户。

【讨论】:

所以“-D dbname”表示需要从转储中忽略的数据库对吗?为此,我们需要在我们的服务器上创建一个具有该名称的数据库,对吗?

以上是关于MySQL:如何在忽略几个数据库的情况下恢复转储的主要内容,如果未能解决你的问题,请参考以下文章

强制 InnoDB 恢复,启动 MySQL 数据库

从转储文件中恢复 MySql

如何恢复 MYSQL .dump 文件?

如何恢复 MYSQL .dump 文件?

恢复尝试在共享主机中创建数据库的 MySQL 转储

如何从 mysqldump 恢复转储文件?