在 mysqldump AWS 中排除/包含表

在 mysqldump AWS 中排除/包含表

我试图弄清楚如何通过终端在 AWS 上执行 mysqldump 命令时排除或包含特定表。

背景:我有一个 WordPress 多站点,但只需要前 3 个字符为“wp_”的表,而其他所有带有前缀的表,如“wp_1”、“wp_2”等,我不需要将它们放在转储文件中。

这是我用来生成转储文件的代码,该文件可以工作但会抓取数据库中的所有表:

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

谢谢!

答案1

当我遇到同样的问题时,我实施的一件事是创建一个包含所有必需表名的文件。现在我只需遍历文件并转储每个表并将其附加到同一个转储文件中。例如:

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

答案2

不久前,我在迁移自己的网站时查看了这个问题,我的结论是这是不可能的。可能有一种方法可以在导出后处理转储文件,但如果没有很好的理由,我可能不会这么做。

答案3

这是不可能的,但您可以随时转储整个数据库并创建一个 SQL 查询来删除不需要的表。然而,这不会缩短 mysqldump 时间。

相关内容