是否可以从--all-databases mysqldump导入单个数据库?我想我可以手动修改文件,但想知道是否有任何命令行选项来执行此操作。
我正在移动服务器并拥有大量数据库,其中大部分目前我不需要或者想要,但是如果需要的话,我希望可以选择恢复单个数据库。
mysqldump
输出只是一组SQL
语句。
您可以在命令行中提供所需的数据库,并使用以下命令跳过针对其他数据库的命令:
mysql -D mydatabase -o mydatabase < dump.sql
这只会在mydatabase
正在使用时执行命令
您可以使用以下命令:
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)