mysql dump export more table with where 条件

mysql dump export more table with where conditions

我不知道如何使用 where 条件为特定表执行 mysqldump。这是我的指示:

mysqldump --user=... --password=... --host=... DB_NAME user --where "name not in ('root', 'root2')",customer --where "customer_name not in ('root', 'root2')" >dump.sql

我收到此错误:

mysqldump: Couldn't execute 'SELECT /*!40001 SQL_NO_CACHE */ * FROM user WHERE customer_name not in ('root', 'root2')': Unknown column 'customer_name' in 'where clause' (1054)

怎么了?谢谢

您不能为每个 table 创建新的 WHERE 条件。只有一个 WHERE 条件,它将应用于每个 table。因此,您只能引用备份中包含的每个 table 中的列。

您可以 运行 每个 table 一个 mysqldump 命令,但如果这样做,您将无法获得一致的备份。我的意思是,您不能使用锁或事务来确保备份包含来自单个时间点的数据。因此,如果数据库在此期间正在使用中,您稍后备份的 tables 可能会引用自您较早 tables 备份以来创建的新行。

您可以将 shell 脚本和 mysqldump 组合在一起,为每个 table.

单独获取转储