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.
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:
CREATE DATABASE
lines (including both CREATE DATABASE
lines), andCREATE 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.
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.