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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (29)

我有一个包含5个数据库的MySQL转储,我想知道是否有一种方法只导入其中一个数据库(使用mysqldump或其他)。

感谢你的建议。

提问于
用户回答回答于

可以将转储的sql通过管道。sed让它为你提取数据库。类似于:

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. 删除最后CREATE DATABASE因为我们不希望mysqld创建第二个数据库,所以从输出中删除。

如果转储不包含CREATE DATABASE行,也可以与USE台词。

用户回答回答于

可以使用MySQL命令行--一个数据库选项。

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

当然,当你这样做的时候要小心。

扫码关注云+社区