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 CLIENT和REPLICATION SLAVE是全局级别的权限,不能被授予特定的数据库或表

相关推荐
凤山老林5 小时前
Spring Boot 启动冲刺:耗时剖析、懒加载策略与事件驱动初始化优化
spring boot·后端·python
朱涛的自习室6 小时前
我给 Gemini 4 和 DeepSeek 搞了套「末位淘汰」,AI 干活会更猛吗?(Day 3)
android·前端·后端
woniu_maggie9 小时前
SAP MDG主数据治理实战:从架构原理到项目实施全解析
后端
xiaoqiMikko9 小时前
Redis 实战(一):内存满了 —— 拒写、淘汰、被系统杀掉,以及删了 key 内存为什么不降(6.2.4 实测)
redis·后端
工程师小爱9 小时前
电芯尺寸合格,不等于电池包尺寸合格
后端
geovindu9 小时前
rust:Memento Pattern(续)
开发语言·后端·设计模式·rust·行为模式·备忘录模
闲云lazycloud9 小时前
第 1 课:Harness 与 Agent 运行时
人工智能·后端
熊哈哈O_o9 小时前
260+异构同步链路:DDL语法自动翻译在大规模数据同步中的实现原理
后端
用户98883218717410 小时前
别把 IOptionsSnapshot 注入单例:从生命周期看 .NET 配置读取
后端