How do I restore one database from a mysqldump containing multiple databases?
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:
- Only print the lines matching between the
CREATE DATABASE
lines (including bothCREATE DATABASE
lines), and - 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.