从–all-databases转储导入单个数据库

可以从–all-databases mysqldump中导入单个数据库吗? 我想我可以手动修改文件,但想知道是否有任何命令行选项来做到这一点。

我正在移动服务器,并有许多数据库,其中大部分我目前不需要或想要,但如果需要的话,想要恢复单个数据库。

mysqldump输出只是一组SQL语句。

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

 mysql -D mydatabase -o < dump.sql 

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

您可以使用以下命令:

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

destdbname是你想要恢复的数据库。

IMHO更安全的另一个选项是从--all-databases转储中提取--all-databases 。 例:

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

用所需的数据库名称replacedbnamealldatabases.sql是你的sql-dump文件的名字。 这样你就可以将分离的数据库存档,然后使用简单的mysql命令进行恢复。

祝你好运

(学分去:达伦Mothersele – 见他的网页 )