Extracting one Database From a full mysqldump File
Normal system administrators make a full database dump as a safety guard against server or disk failure with the following command:
shell>mysqldump -e -u root –password=securepasswd –all-databases > fulldump.sql
The idea behind a full dump, when recovering from a crash it is easy to recover all databases in one go. You can restore all databases with a single command (watch out do not use this command on a live databaseserver it will overwrite all existing databases and tables):
shell> mysql -u root -p securepassword database_name < fulldump.sql
If you want to recover online ONE single database from a full dump file use the following command with the –one-database flag!
mysql> mysql -u root -p –one-database testdb < fullserverdump.sql
If you don’t want to restore the database, but you only want to extract the database testdb out of the full dump file you can do this with sed:
shell> sed -n ‘/^– Current Database: `test`/,/^– Current Database: `/p’ fulldump.sql > test.sql
if the above does not work (older mysql versions) try:
shell> sed -n ‘/^– Current Database: test/,/^– Current Database: /p’ fulldump.sql > test.sql
“You just need to change “testdb” to be the name of the database you want extracted.”
Rudolf Maduro – Life Coach and IT specialist
Disclaimer: Test all commands on your sandbox system first. I assume no responsibility if you break your system using this information.