实时采集报错:io.debezium.DebeziumException: Unknown command Error code: 1047; SQLSTATE: HY000.

问题背景

使用KafkaConnect对MySQL进行实时采集的过程中出现启动异常的问题,其中集群环境和MySQL服务器均在云服务

报错详情如下

org.apache.kafka.connect.errors.ConnectException: An exception occurred in the change event producer. This connector will be stopped.
    at io.debezium.pipeline.ErrorHandler.setProducerThrowable(ErrorHandler.java:42)
    at io.debezium.connector.mysql.MySqlStreamingChangeEventSource$ReaderThreadLifecycleListener.onCommunicationFailure(MySqlStreamingChangeEventSource.java:1199)
    at com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:980)
    at com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:599)
    at com.github.shyiko.mysql.binlog.BinaryLogClient$7.run(BinaryLogClient.java:857)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: io.debezium.DebeziumException: Unknown command Error code: 1047; SQLSTATE: HY000.
    at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.wrap(MySqlStreamingChangeEventSource.java:1154)
    ... 5 more
Caused by: com.github.shyiko.mysql.binlog.network.ServerException: Unknown command
    at com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:944)
    ... 3 more

问题产生原因

造成此原因是因为云服务器的mysql使用网络代理节点导致的,因为debezium在采集MySQL的binlog时采集节点是无法通过MySQL的网络代理节点解析对应的binlog数据的

解决方案

修改为节点直连模式而不是通过网络代理