How do I restore one database from a mysqldump containing multiple databases?

荒凉一梦 提交于 2019-12-20 11:56:50

问题


I have a mysql dump with 5 databases and would like to know if there is a way to import just one of those (using mysqldump or other).

Suggestions appreciated.


回答1:


You can pipe the dumped SQL through sed and have it extract the database for you. Something like:

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

The two sed commands:

  1. Only print the lines matching between the CREATE DATABASE lines (including both CREATE DATABASE lines), and
  2. Delete the last CREATE DATABASE line from the output since we don't want mysqld to create a second database.

If your dump does not contain the CREATE DATABASE lines, you can also match against the USE lines.




回答2:


You can use the mysql command line --one-database option.

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

Of course be careful when you do this.

You can also use a mysql dumpsplitter.



来源:https://stackoverflow.com/questions/3596444/how-do-i-restore-one-database-from-a-mysqldump-containing-multiple-databases

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!