If you need to restore a single table from a full MySQL backup, you may find yourself wondering “how do I do that?”. There are a few steps required, I outline them here for you to restore the contents of just one table back into the database from the mysqldump using Bash.
As outlined in the intro, there are a few required steps you need to perform to restore a single table from a mysqldump backup, because all your tables and data are in one file. Your mysqldump backup file might be hundreds MB’s in size. Therefore, you first need to single out the table you want restored.
In my examples I use the WordPress
On your bash shell, use
sed to separate the data belonging to your table that needs restoring:
sed -n -e '/DROP TABLE.*`wp_options`/,/UNLOCK TABLES/p' mysql_examplecom.sql > examplecom_wp_options.sql
This will copy data in the dump file mysql_examplecom.sql what is between
DROP TABLE.*`wp_options` and reads until mysql is done dumping data to your table (
UNLOCK) into a new file.
Next you can import the newly created table dump file into MySQL:
mysql -u <user> -p < examplecom_wp_options.sql
And that’s it! This saved me more than once, that’s why I’ve now documented it here.
Other methods to single out the table required do exist. Always be careful and work with additional backups.
My name is Jan. I am not a hacker, coder, developer, programmer or guru. I am merely a system administrator, doing my daily thing at Vevida in the Netherlands. With over 15 years of experience, my specialties include Windows Server, IIS, Linux (CentOS, Debian), security, PHP, WordPress, websites & optimization. Want to support me and donate? Use this link: https://paypal.me/jreilink.
MySQL InnoDB performance improvement: InnoDB buffer pool instances – Updated!
How to string replace on all WordPress posts in MySQL
MySQL database optimization with indices
Convert MySQL MyISAM tables to InnoDB
How to flush MySQL query cache from time to time
Check, repair and optimize MySQL tables with mysqlcheck
How to compare MD5 and SHA1 hashes in MySQL