我试图找出如何通过terminal在AWS上执行mysqldump命令时排除或包含特定的表。
背景:我有一个WordPress多站点,但只需要前三个字符“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
谢谢!
当我遇到同样的问题时,我已经实现了一件事情,那就是我创build了一个包含所有必需表名的文件。 现在我只需遍历整个文件并把每个表的转储附加到同一个转储文件中。 例如:
for i in $(cat requiredtables.txt);do mysqldump -h RDS_instance -u user -p'password' db_name $i >> db_dump.sql;done
前一段时间,我在移动自己的网站时看了这个,我的结论是不可能的。 出口后可能有一种方法来处理转储文件,但是如果没有真正的理由,我可能不会去打扰。
这是不可能的,但你总是可以转储整个数据库,并创build一个SQL查询,删除不需要的表。 但是这不会缩短mysqldump的时间。