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:如何在忽略几个数据库的情况下恢复转储的主要内容,如果未能解决你的问题,请参考以下文章