由于错误代码 1236,无法启动 debezium MySQL 连接器

Posted

技术标签:

【中文标题】由于错误代码 1236,无法启动 debezium MySQL 连接器【英文标题】:Cannot start debezium MySQL connector due to Error code 1236 【发布时间】:2021-07-13 22:27:41 【问题描述】:

当我通过 kakfa-connect 的 REST API 检查我的 debezium 连接器的状态时,我看到连接器的以下错误消息:

org.apache.kafka.connect.errors.ConnectException: 从机是 使用 CHANGE MASTER TO MASTER_AUTO_POSITION = 1 进行连接,但是 主服务器已清除包含从服务器的 GTID 的二进制日志 需要。错误代码:1236; SQLSTATE: HY000.\n\tat io.debezium.connector.mysql.AbstractReader.wrap(AbstractReader.java:230)\n\tat io.debezium.connector.mysql.AbstractReader.failed(AbstractReader.java:197)\n\tat io.debezium.connector.mysql.BinlogReader$ReaderThreadLifecycleListener.onCommunicationFailure(BinlogReader.java:997)\n\tat com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:950)\n\tat com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:580)\n\tat com.github.shyiko.mysql.binlog.BinaryLogClient$7.run(BinaryLogClient.java:825)\n\tat java.lang.Thread.run(Thread.java:748)\n原因: com.github.shyiko.mysql.binlog.network.ServerException: 从属是 使用 CHANGE MASTER TO MASTER_AUTO_POSITION = 1 进行连接,但是 主服务器已清除包含从服务器的 GTID 的二进制日志 需要。\n\tat com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:914)\n\t... 还有 3 个\n

这是我如何配置我的 debezium 连接器的问题还是 MySQL 的问题?疯狂的是,即使我尝试将选项 snapshot.mode 设置为 never 并且仍然抛出此错误!根据文档,当snapshot.mode 设置为neverwhen_needed 时,它不应该需要GTID,所以我对正在发生的事情感到非常困惑

【问题讨论】:

【参考方案1】:

问题在于,Debezium 可能已经关闭了一段时间,并且它没有看到的一些事务在服务器上不再可用。

【讨论】:

我已经删除了kafka-connect的内部主题并重建了debezium连接器,为什么我仍然看到消息?

以上是关于由于错误代码 1236,无法启动 debezium MySQL 连接器的主要内容,如果未能解决你的问题,请参考以下文章

Postgres 使用 debezium 创建复制槽失败

MySQL 5.5 '二进制日志未打开',错误代码:1236

Kafka 生产者创建 Debezium MySQL 连接器后无法创建主题并引发连续错误

kafka connect debezium mongodb连接器无法加载

解决mysql开启GTID主从同步出现1236错误问题

解决mysql开启GTID主从同步出现1236错误问题