如何从包含多个数据库的mysqldump恢复一个数据库?

时间:2010-08-29 20:21:10

标签: mysql database import mysqldump restore

我有一个带有5个数据库的mysql转储,想知道是否有办法只导入其中一个(使用mysqldump或其他)。

建议表示赞赏。

2 个答案:

答案 0 :(得分:27)

您可以使用mysql命令行--one-database选项。

mysql> mysql -u root -p --one-database YOURDBNAME < YOURFILE.SQL

当你这样做时要小心。

您还可以使用mysql dumpsplitter

答案 1 :(得分:15)

您可以通过sed管道转储的SQL,并让它为您提取数据库。类似的东西:

cat mysqldumped.sql | \
sed -n -e '/^CREATE DATABASE.*`the_database_you_want`/,/^CREATE DATABASE/ p' | \
sed -e '$d' | \
mysql

两个sed命令:

  1. 仅打印CREATE DATABASE行之间匹配的行(包括CREATE DATABASE行)和
  2. 从输出中删除 last CREATE DATABASE行,因为我们不希望mysqld创建第二个数据库。
  3. 如果您的转储不包含CREATE DATABASE行,您也可以匹配USE行。