基于 GTID 的复制正在尝试重新执行已转储到 mysql 上的内容

GTID based replication is trying to reexecute what ever has been dumped on mysql

我正在尝试将 cloudsql MYSQL 数据库复制到 GCE VM,我正在按照本指南进行操作。 https://cloud.google.com/sql/docs/mysql/replication/configure-external-replica

我遇到的错误是,一旦我恢复转储并启动我的从站,从站就会尝试执行已经转储的 DDL 命令。也就是说,基于 GTID 的复制是从 0 开始的。 我期望的是它从转储发生的地方开始。

我这里做错了什么?

我可以看到我正在从 master 那里获取最新的 GTID 集。 (左边是奴隶,右边是主人)。

所以我发现了问题。 问题是我的转储文件不包含有关来自源服务器的 GTID 的信息。因此,目的地不知道在源处执行了什么 GTID。 所以我必须在创建 mysql 转储时将 gtid_purged 设置为关闭。 这将在恢复时在目的地设置 gtid_executed 并确保没有重新执行