mysql - 基于 GTID 的复制正在尝试重新执行已转储到 mysql 上的内容
问题描述
我正在尝试将 cloudsql MYSQL 数据库复制到 GCE VM,并且我正在遵循本指南。 https://cloud.google.com/sql/docs/mysql/replication/configure-external-replica
我面临的错误是,一旦我恢复转储并启动我的从站,从站尝试执行已经转储的 DDL 命令。换句话说,基于 GTID 的复制从 0 开始。我期望它从进行转储的点开始。
我在这里做错了什么?
我可以看到我正在从主人那里获得最新的 GTID 集。(左边是奴隶,右边是主人)。
解决方案
所以我发现了这个问题。问题是我的转储文件不包含来自源服务器的 GTID 信息。因此,目的地不知道在源头执行了什么 GTID。所以我必须在创建 mysql 转储时将 gtid_purged 设置为 off。这将在还原时在目的地设置 gtid_executed 并确保不会重新执行
推荐阅读
- reactjs - 有条件地输入 React 所需的输入
- javascript - 如何对数组中的不同对象数组进行排序
- html - Flex 列在不过度扩展我的内容的情况下不会拉伸
- android - 如何很好地使用 MaterialAlertDialogBuilder?
- php - 如何根据屏幕大小调整php中的图像大小?
- asynchronous - BeginGetHostAddresses 异步回调是否在另一个线程中调用而不是初始
- android - 如何允许在不解锁设备屏幕的情况下使用应用程序?
- nginx - Nginx 代理没有返回它从服务器接收到的确切错误响应
- django - 具有通用 UpdateView 的 RadioSelect 小部件
- ffmpeg - 使用 FFMpeg 库在生成音频文件时读取它