Flink CDC 读取 MySQL 报错解决

报错内容

Flink CDC 读取 MySQL 的用户有需要表的读写权限,但是报错。

less 复制代码
io.debezium.DebeziumException: Access denied; you need (at least one of) the REPLICATION SLAVE privilege(s) for this operation Error code: 1227; SQLSTATE: 42000.
	at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.wrap(MySqlStreamingChangeEventSource.java:1489) ~[flink-1.0.jar:?]
	at io.debezium.connector.mysql.MySqlStreamingChangeEventSource$ReaderThreadLifecycleListener.onCommunicationFailure(MySqlStreamingChangeEventSource.java:1545) [flink-1.0.jar:?]
	at com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:1079) [flink-1.0.jar:?]
	at com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:631) [flink-1.0.jar:?]
	at com.github.shyiko.mysql.binlog.BinaryLogClient$7.run(BinaryLogClient.java:932) [flink-1.0.jar:?]
	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_202]
Caused by: com.github.shyiko.mysql.binlog.network.ServerException: Access denied; you need (at least one of) the REPLICATION SLAVE privilege(s) for this operation
	at com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:1043) ~[flink-1.0.jar:?]
	... 3 more

问题原因

错误信息提示你需要REPLICATION SLAVE权限。这个权限允许用户从MySQL主服务器复制(读取)二进制日志,这是进行MySQL复制所必须的权限。在你的情况下,Flink的Debezium connector正在尝试读取二进制日志以获取数据库的变更事件,因此需要这个权限。

解决方法

sql 复制代码
GRANT REPLICATION CLIENT ON *.* TO 'flink'@'%';
GRANT REPLICATION SLAVE ON *.* TO 'flink'@'%';
FLUSH PRIVILEGES;
  • REPLICATION CLIENT权限允许用户查询主服务器的二进制日志状态(通过SHOW MASTER STATUS命令)和从服务器的状态(通过SHOW SLAVE STATUS命令)。这个权限通常用于监控和管理MySQL的主从复制。

  • REPLICATION SLAVE权限允许用户从主服务器复制(读取)二进制日志。这是进行MySQL复制所必需的权限,也是Flink的Debezium connector需要的权限。

  • MySQL中,REPLICATION CLIENTREPLICATION SLAVE是全局级别的权限,不能被授予特定的数据库或表

相关推荐
小马爱打代码4 小时前
SpringBoot:封装 starter
java·spring boot·后端
STARSpace88884 小时前
SpringBoot 整合个推推送
java·spring boot·后端·消息推送·个推
Marktowin5 小时前
玩转 ZooKeeper
后端
蓝眸少年CY5 小时前
(第十二篇)spring cloud之Stream消息驱动
后端·spring·spring cloud
码界奇点5 小时前
基于SpringBoot+Vue的前后端分离外卖点单系统设计与实现
vue.js·spring boot·后端·spring·毕业设计·源代码管理
lindd9119116 小时前
4G模块应用,内网穿透,前端网页的制作第七讲(智能头盔数据上传至网页端)
前端·后端·零基础·rt-thread·实时操作系统·项目复刻
Loo国昌6 小时前
【LangChain1.0】第八阶段:文档处理工程(LangChain篇)
人工智能·后端·算法·语言模型·架构·langchain
vx_bisheyuange6 小时前
基于SpringBoot的海鲜市场系统
java·spring boot·后端·毕业设计
李慕婉学姐7 小时前
【开题答辩过程】以《基于Spring Boot和大数据的医院挂号系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
大数据·spring boot·后端
源代码•宸8 小时前
Leetcode—3. 无重复字符的最长子串【中等】
经验分享·后端·算法·leetcode·面试·golang·string