debezium 0.8.0 mysql connector parse binlog失败,table.columnwithname返回null,为什么会发生这种情况?

p3rjfoxz  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(913)

当有人按idea修改表时,debezium connector任务由于nullpointerexception而失败。
这是Kafka连接日志:

  1. INFO: Connected to 192.168.1.204:3306 at mysql-bin.000098/467648 (sid:184054, cid:59755)
  2. [2018-08-07 19:05:15,309] INFO Connected to MySQL binlog at 192.168.1.204:3306, starting at binlog file 'mysql-bin.000098', pos=467648, skipping 2 events plus 0 rows ( io.debezium.connector.mysql.BinlogReader:941)
  3. [2018-08-07 19:05:15,309] INFO WorkerSourceTask{id=debezium-mysql-source-dev-0} Source task finished initialization and start (org.apache.kafka.connect.runtime.WorkerSourceTask:165)
  4. [2018-08-07 19:05:15,311] INFO Creating thread debezium-mysqlconnector-dev-binlog-client (io.debezium.util.Threads:247)
  5. [2018-08-07 19:05:15,364] INFO Cluster ID: rse1l3gPRJW9-aJLJMB8YA (org.apache.kafka.clients.Metadata:265)
  6. [2018-08-07 19:05:15,370] ERROR Error during binlog processing. Last offset stored = null, binlog reader near position = mysql-bin.000098/467713 ( io.debezium.connector.mysql.BinlogReader:967)
  7. [2018-08-07 19:05:15,371] ERROR Failed due to error: Error processing binlog event (io.debezium.connector.mysql.BinlogReader:179)
  8. org.apache.kafka.connect.errors.ConnectException: Unexpected exception while parsing statement /* ApplicationName=IntelliJ IDEA 2017.2.4 */ ALTER TABLE fund_account ALTER COLUMN is_use_pay SET DEFAULT 0 at line 1, column 99
  9. at io.debezium.connector.mysql.AbstractReader.wrap(AbstractReader.java:200)
  10. at io.debezium.connector.mysql.AbstractReader.failed(AbstractReader.java:178)
  11. at io.debezium.connector.mysql.BinlogReader.handleEvent(BinlogReader.java:452)
  12. at com.github.shyiko.mysql.binlog.BinaryLogClient.notifyEventListeners(BinaryLogClient.java:1055)
  13. at com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:913)
  14. at com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:559)
  15. at com.github.shyiko.mysql.binlog.BinaryLogClient$7.run(BinaryLogClient.java:793)
  16. at java.lang.Thread.run(Thread.java:748)
  17. Caused by: io.debezium.text.ParsingException: Unexpected exception while parsing statement /* ApplicationName=IntelliJ IDEA 2017.2.4 */ ALTER TABLE fund_account ALTER COLUMN is_use_pay SET DEFAULT 0 at line 1, column 99
  18. at io.debezium.relational.ddl.LegacyDdlParser.parsingFailed(LegacyDdlParser.java:555)
  19. at io.debezium.relational.ddl.LegacyDdlParser.parse(LegacyDdlParser.java:227)
  20. at io.debezium.relational.ddl.LegacyDdlParser.parse(LegacyDdlParser.java:200)
  21. at io.debezium.connector.mysql.MySqlSchema.applyDdl(MySqlSchema.java:298)
  22. at io.debezium.connector.mysql.BinlogReader.handleQueryEvent(BinlogReader.java:637)
  23. at io.debezium.connector.mysql.BinlogReader.handleEvent(BinlogReader.java:436)
  24. ... 5 more
  25. Caused by: java.lang.NullPointerException
  26. at io.debezium.connector.mysql.MySqlDdlParser.parseAlterSpecification(MySqlDdlParser.java:1296)
  27. at io.debezium.connector.mysql.MySqlDdlParser.parseAlterSpecificationList(MySqlDdlParser.java:1254)
  28. at io.debezium.connector.mysql.MySqlDdlParser.parseAlterTable(MySqlDdlParser.java:1237)
  29. at io.debezium.connector.mysql.MySqlDdlParser.parseAlter(MySqlDdlParser.java:1199)
  30. at io.debezium.connector.mysql.MySqlDdlParser.parseNextStatement(MySqlDdlParser.java:177)
  31. at io.debezium.relational.ddl.LegacyDdlParser.parse(LegacyDdlParser.java:219)
  32. ... 9 more
  33. [2018-08-07 19:05:15,373] INFO Error processing binlog event, and propagating to Kafka Connect so it stops this connector. Future binlog events read before connector is shutdown will be ignored. (io.debezium.connector.mysql.BinlogReader:457)

以下是mysql binlog:

  1. /*!\C utf8mb4 *//*!*/;
  2. SET@@session.character_set_client=45,@@session.collation_connection=45,@@session.collation_server=224/*!*/;
  3. SET @@session.lc_time_names=0/*!*/;
  4. SET @@session.collation_database=DEFAULT/*!*/;
  5. /* ApplicationName=IntelliJ IDEA 2017.2.4 */ ALTER TABLE fund_account
  6. ALTER COLUMN is_use_pay SET DEFAULT 0
  7. /*!*/;
  8. # at 467906
  9. # 180806 12:26:09 server id 1 end_log_pos 467971 CRC32 0x28ebc3fa
  10. Anonymous_GTID last_committed=833 sequence_number=834 rbr_only=yes
  11. /*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
  12. SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
  13. # at 467971

似乎debezium无法解析 ALTER TABLE fund_account ALTER COLUMN is_use_pay SET DEFAULT 0 ?

dxxyhpgq

dxxyhpgq1#

有意思,你能不能从别的Angular 试试?
你能试着用一下吗 ddl.parser.mode 设置为 antlr ?
如果问题仍然存在,你能在jira项目中提出一个问题吗?
谢谢

相关问题