Flink CDC 出现错误码 1236 和 SQL 状态 HY000 的原因及解决方法
常见原因
- server-id 冲突:当多个 Flink CDC 任务连接同一个 MySQL 实例,且使用了相同的 server-id 时,会导致该冲突。因为 MySQL 服务器通过 server-id 来区分不同的从服务器,如果多个 Flink CDC 任务使用相同的 server-id,MySQL 无法区分它们,从而引发冲突。
- binlog 文件丢失或被清理:若 Flink CDC 任务尝试读取的 binlog 文件已经被 MySQL 清理掉,就会出现该错误。例如,当 MySQL 的 binlog 过期时间较短,而 Flink CDC 任务由于某些原因未能及时读取 binlog 日志时,就可能导致 binlog 文件被清理。
- GTID 模式下出现问题:在 GTID 模式下,若从库的 GTID_PURGED 值与主库不一致,或者主库已经清理了包含 GTID 的 binlog 文件,也会导致该错误。
解决方法
- 确保 server-id 唯一:为每个