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

前端 未结 2 742
长情又很酷
长情又很酷 2021-02-05 12:34

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.

2条回答
  •  一整个雨季
    2021-02-05 13:25

    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.

提交回复
热议问题