从--all-databases dump导入单个数据库

问题描述 投票:61回答:2

是否可以从--all-databases mysqldump导入单个数据库?我想我可以手动修改文件,但想知道是否有任何命令行选项来执行此操作。

我正在移动服务器并拥有大量数据库,其中大部分目前我不需要或者想要,但是如果需要的话,我希望可以选择恢复单个数据库。

mysql database import mysqldump
2个回答
72
投票

mysqldump输出只是一组SQL语句。

您可以在命令行中提供所需的数据库,并使用以下命令跳过针对其他数据库的命令:

mysql -D mydatabase -o mydatabase < dump.sql

这只会在mydatabase正在使用时执行命令


64
投票

您可以使用以下命令:

mysql -u root -p --one-database destdbname < alldatabases.sql

其中destdbname是您想要恢复的数据库。

另一个选项是恕我直言,更安全,是从--all-databases转储中提取数据库。例:

sed -n '/^-- Current Database: `dbname`/,/^-- Current Database: `/p' alldatabases.sql > output.sql

dbname替换为所需的数据库名称。 alldatabases.sql是您的sql-dump文件的名称。这样你就可以在文件中分配数据了,然后你可以使用一个简单的mysql命令进行恢复。

祝好运

(致记者:Darren Mothersele - 见his page

© www.soinside.com 2019 - 2024. All rights reserved.