当前位置: 首页 > news >正文

FlinkCDC3.3 使用 Mysql 8.4 报错

一、报错日志

Caused by: io.debezium.DebeziumException: org.apache.flink.util.FlinkRuntimeException: Cannot read the binlog filename and position via 'SHOW MASTER STATUS'. Make sure your server is correctly configured
	at org.apache.flink.cdc.connectors.mysql.debezium.task.MySqlSnapshotSplitReadTask.execute(MySqlSnapshotSplitReadTask.java:134) ~[blob_p-916429e34e7e81044b5e0a15a59b94423de0f995-2d2f6d334847d4017dc084f29d5f56fb:3.3.0]
	at org.apache.flink.cdc.connectors.mysql.debezium.reader.SnapshotSplitReader.snapshot(SnapshotSplitReader.java:176) ~[blob_p-916429e34e7e81044b5e0a15a59b94423de0f995-2d2f6d334847d4017dc084f29d5f56fb:3.3.0]
	at org.apache.flink.cdc.connectors.mysql.debezium.reader.SnapshotSplitReader.lambda$submitSplit$1(SnapshotSplitReader.java:161) ~[blob_p-916429e34e7e81044b5e0a15a59b94423de0f995-2d2f6d334847d4017dc084f29d5f56fb:3.3.0]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_412]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_412]
	... 1 more
Caused by: org.apache.flink.util.FlinkRuntimeException: Cannot read the binlog filename and position via 'SHOW MASTER STATUS'. Make sure your server is correctly configured
	at org.apache.flink.cdc.connectors.mysql.debezium.DebeziumUtils.currentBinlogOffset(DebeziumUtils.java:143) ~[blob_p-916429e34e7e81044b5e0a15a59b94423de0f995-2d2f6d334847d4017dc084f29d5f56fb:3.3.0]
	at org.apache.flink.cdc.connectors.mysql.debezium.task.MySqlSnapshotSplitReadTask.doExecute(MySqlSnapshotSplitReadTask.java:156) ~[blob_p-916429e34e7e81044b5e0a15a59b94423de0f995-2d2f6d334847d4017dc084f29d5f56fb:3.3.0]
	at org.apache.flink.cdc.connectors.mysql.debezium.task.MySqlSnapshotSplitReadTask.execute(MySqlSnapshotSplitReadTask.java:129) ~[blob_p-916429e34e7e81044b5e0a15a59b94423de0f995-2d2f6d334847d4017dc084f29d5f56fb:3.3.0]
	at org.apache.flink.cdc.connectors.mysql.debezium.reader.SnapshotSplitReader.snapshot(SnapshotSplitReader.java:176) ~[blob_p-916429e34e7e81044b5e0a15a59b94423de0f995-2d2f6d334847d4017dc084f29d5f56fb:3.3.0]
	at org.apache.flink.cdc.connectors.mysql.debezium.reader.SnapshotSplitReader.lambda$submitSplit$1(SnapshotSplitReader.java:161) ~[blob_p-916429e34e7e81044b5e0a15a59b94423de0f995-2d2f6d334847d4017dc084f29d5f56fb:3.3.0]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_412]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_412]
	... 1 more
Caused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MASTER STATUS' at line 1
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120) ~[mysql-connector-java-8.0.22.jar:8.0.22]
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.22.jar:8.0.22]
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.22.jar:8.0.22]
	at com.mysql.cj.jdbc.StatementImpl.executeQuery(StatementImpl.java:1200) ~[mysql-connector-java-8.0.22.jar:8.0.22]
	at io.debezium.jdbc.JdbcConnection.queryAndMap(JdbcConnection.java:641) ~[blob_p-916429e34e7e81044b5e0a15a59b94423de0f995-2d2f6d334847d4017dc084f29d5f56fb:3.3.0]
	at io.debezium.jdbc.JdbcConnection.queryAndMap(JdbcConnection.java:510) ~[blob_p-916429e34e7e81044b5e0a15a59b94423de0f995-2d2f6d334847d4017dc084f29d5f56fb:3.3.0]
	at org.apache.flink.cdc.connectors.mysql.debezium.DebeziumUtils.currentBinlogOffset(DebeziumUtils.java:123) ~[blob_p-916429e34e7e81044b5e0a15a59b94423de0f995-2d2f6d334847d4017dc084f29d5f56fb:3.3.0]
	at org.apache.flink.cdc.connectors.mysql.debezium.task.MySqlSnapshotSplitReadTask.doExecute(MySqlSnapshotSplitReadTask.java:156) ~[blob_p-916429e34e7e81044b5e0a15a59b94423de0f995-2d2f6d334847d4017dc084f29d5f56fb:3.3.0]
	at org.apache.flink.cdc.connectors.mysql.debezium.task.MySqlSnapshotSplitReadTask.execute(MySqlSnapshotSplitReadTask.java:129) ~[blob_p-916429e34e7e81044b5e0a15a59b94423de0f995-2d2f6d334847d4017dc084f29d5f56fb:3.3.0]
	at org.apache.flink.cdc.connectors.mysql.debezium.reader.SnapshotSplitReader.snapshot(SnapshotSplitReader.java:176) ~[blob_p-916429e34e7e81044b5e0a15a59b94423de0f995-2d2f6d334847d4017dc084f29d5f56fb:3.3.0]
	at org.apache.flink.cdc.connectors.mysql.debezium.reader.SnapshotSplitReader.lambda$submitSplit$1(SnapshotSplitReader.java:161) ~[blob_p-916429e34e7e81044b5e0a15a59b94423de0f995-2d2f6d334847d4017dc084f29d5f56fb:3.3.0]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_412]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_412]
	... 1 more

二、原因

8.0.x binlog 查询点位支持 show master status;
https://dev.mysql.com/doc/refman/8.0/en/change-master-to.html
在这里插入图片描述

8.4.x binlog 查询点位不支持 show master status; 改为 SHOW BINARY LOG STATUS;
在这里插入图片描述
https://dev.mysql.com/doc/refman/8.4/en/show-master-status.html
在这里插入图片描述

三、解决方案

  1. 换 mysql 版本。
  2. 修改 FLINK CDC 源码。
    在这里插入图片描述

相关文章:

  • C# 委托中 Invoke/BeginInvoke/EndInvoke和DynamicInvoke 方法
  • 机器学习中的梯度下降是什么意思?
  • 数据结构 -并查集
  • makefile详解
  • SpringBoot加载配置文件的优先级
  • Windows编程----结束进程
  • echarts使用记录
  • 东林复试数据库原理总结
  • 嵌入式c学习四
  • 通道注意力机制、空间注意力机制、混合注意力机制
  • 高效自动化测试:打造Python+Requests+Pytest+Allure+YAML的接口测试框架
  • 燃气对我们生活的重要性体现在哪里?
  • kali linux更新sqlmap
  • C#中多线程访问对象锁问题的总结及解决方案
  • HTML+JavaScript实现随机点名2.0|随机抽奖效果-demo
  • cursor 用 Claude 3.5 做简单的网页小游戏
  • 在 JDK 1.8 的 ConcurrentHashMap 中,为什么存在两种插入方式?
  • 解决vscode中出现“无法将pip项识别...“问题
  • 2025软件供应链安全案例︱证券行业云原生DevSecOps敏捷安全实践
  • 实施一套先进的智能摄像头服务系统。
  • 中年人多活动有助预防阿尔茨海默病
  • 五一档7.47亿收官:《水饺皇后》领跑;男观众占比增多
  • 上海今日降雨降温,节后首个工作日气温回升最高可达28℃
  • 朝中社:美在朝鲜半岛增兵将进一步增加其本土安全不确定性
  • 安徽六安特色产品将“组团”入沪,借力五五购物节开拓市场
  • 首部关于民营经济发展的基础性法律,有何亮点?专家解读