2

I'm trying to figure out how to exclude or include specific tables when doing mysqldump command on AWS via terminal.

Background: I have a WordPress multisite but only need the tables with the first 3 characters "wp_" all of the other tables with prefixes like "wp_1", "wp_2", etc. I don't need in the dump file.

Here is the code I am using to generate the dump file which works but grabs all the tables in the database:

mysqldump -h RDS instance endpoint \ 
-u user \ 
-p databasename \ 
--port=3306 \ 
--single-transaction \ 
--routines \ 
--triggers \ 
--databases databasename > path/rds-dump.sql

Thanks!

Christian
  • 123

3 Answers3

2

One thing that I have implemented when I faced same issue is that I created a file with all the required table names. Now I just have to Iterate through the file and take the dump of each table and append it in the same dump file. For example:

for i in $(cat requiredtables.txt);do mysqldump -h RDS_instance -u user -p'password' db_name $i >> db_dump.sql;done
Sunny
  • 73
0

I looked at this a while ago, when moving my own websites, and my conclusion is it's not possible. There's probably a way to process the dump file after export, but I probably wouldn't bother without a really good reason.

Tim
  • 33,870
  • 7
  • 56
  • 84
0

This is not possible, but you can always dump the entire db and create an SQL query that drops the unwanted tables. This however will not shorten mysqldump time.

Alex
  • 348