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 唯一:為每個