FlinkCDC - mysql
1. 背景
FlinkSQL双流关联时,mysql流未能捕捉到Mysql表更新,所以尝试使用FlinkCDC解决此问题。
2022-3-31 21:31:39 语法使用不当导致的未能捕捉,修改后可以。但是FlinkCDC研究下也没坏处。
2. 代码
2.1 使用
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
DebeziumDeserializationSchema schema = new StringDebeziumDeserializationSchema();
DebeziumSourceFunction function = MySQLSource.builder()
.hostname("101.71.102.255")
.port(8081)
.databaseList("kafka")
.username("kafka")
.password("Bonc@123")
.deserializer(schema)
.build();
env.addSource(function).print().setParallelism(1);
env.execute();
3. 问题及解决办法
3.1 无权限
Caused by: org.apache.kafka.connect.errors.ConnectException: Access denied; you need (at least one of) the RELOAD privilege(s) for this operation Error code: 1227; SQLSTATE: 42000.
at io.debezium.connector.mysql.AbstractReader.wrap(AbstractReader.java:241)
at io.debezium.connector.mysql.AbstractReader.failed(AbstractReader.java:218)
at io.debezium.connector.mysql.SnapshotReader.execute(SnapshotReader.java:857)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.sql.SQLSyntaxErrorException: Access denied; you need (at least one of) the RELOAD privilege(s) for this operation
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
mysql授权
grant reload on kafka.* to kafka@'%';
flush privilleges;
分类:
大数据 / flink
标签:
FlinkCDC
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)