必须授予replication client on .权限才能执行show binary logs或show master status,该权限仅查看binlog元信息、不读取内容,需flush privileges生效,且host须匹配实际连接来源。

只查 binlog 列表和位置,用 REPLICATION CLIENT
执行 SHOW BINARY LOGS 或 SHOW MASTER STATUS 时,报错 ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER, REPLICATION CLIENT privilege(s),说明缺这个权限。它不读数据,只看日志元信息,够轻量。
实操要点:
-
GRANT REPLICATION CLIENT ON *.* TO 'audit_user'@'192.168.10.%';—— 必须是ON *.*,不能写成ON db1.*或ON *.* TO 'user'@'localhost'(host 范围要匹配实际连接来源) - 执行后必须
FLUSH PRIVILEGES;,MySQL 8.0+ 部分场景可跳过,但加了更稳 - 这个权限本身不暴露 binlog 内容,
SHOW BINLOG EVENTS仍会失败
要执行 SHOW BINLOG EVENTS,必须给 BINLOG_ADMIN(8.0+)或 SUPER(5.7)
REPLICATION CLIENT 不足以查看事件内容。想运行 SHOW BINLOG EVENTS IN 'mysql-bin.000001',必须有更高权限。
关键区别:
- MySQL 8.0.12+ 推荐用
GRANT BINLOG_ADMIN ON *.* TO 'audit_user'@'%';,比SUPER更收敛 - 5.7 及以前只能用
GRANT SUPER ON *.* TO 'audit_user'@'%';,但它是高危权限,能绕过很多安全限制 - 无论哪个版本,都必须
ON *.*,无法限定到某个 binlog 文件或数据库
远程解析 binlog(如 mysqlbinlog --read-from-remote-server),需要 REPLICATION SLAVE
工具像 mysqlbinlog、Canal、Debezium 连接 MySQL 拉取原始 binlog 流时,不是查 SQL 视图,而是走复制协议——这就要求账号有 REPLICATION SLAVE 权限。
注意点:
-
GRANT REPLICATION SLAVE ON *.* TO 'sync_user'@'10.20.%';—— 同样只能全局授予,host 范围建议收紧,别用'%' - 仅
REPLICATION CLIENT会导致连接成功但无事件返回,日志常见报错:could not find first log file name in binary log index file - 如果用 MySQL 8.0+ 的
caching_sha2_password认证,客户端可能握手失败,需临时切回:ALTER USER 'sync_user'@'10.20.%' IDENTIFIED WITH mysql_native_password BY 'xxx';
同步工具还额外要 SELECT 和 ROW 格式支持
像 Flink CDC、Dataphin、Maxwell 这类工具,除了拉 binlog,还要做初始快照(snapshot),所以必须有 SELECT 权限访问业务表;同时 binlog 格式必须是 ROW,且 binlog_row_image 设为 FULL。
检查与设置:
-
SHOW VARIABLES LIKE 'binlog_format';—— 必须返回ROW,否则改:SET GLOBAL binlog_format = 'ROW';(并写入配置文件永久生效) -
SHOW VARIABLES LIKE 'binlog_row_image';—— 必须是FULL,否则 UPDATE 事件可能缺旧值,导致 CDC 工具解析失败 -
GRANT SELECT ON mydb.* TO 'sync_user'@'10.20.%';——SELECT可按库表粒度授权,和REPLICATION SLAVE分开给更安全
真正容易被忽略的是权限组合的“隐性依赖”:比如给了 REPLICATION SLAVE 却没开 ROW 格式,或者开了 ROW 但 binlog_row_image 是 MINIMAL,工具照样出错;又比如用 mysqlbinlog 远程读,却只给了 REPLICATION CLIENT,连协议握手都通不过。权限不是堆得越多越好,而是按使用路径精准配齐。











