首页/数据/数据库速查/复制账号创建(REPLICATION SLAVE)
主从复制与高可用53 条

复制账号创建(REPLICATION SLAVE)

复制专用账号最小权限:REPLICATION SLAVE(拉取 binlog)即可;GTID 环境再加 REPLICATION CLIENT 便于查位点;限制来源主机与独立密码。

数据库速查数据更新于 2026-10-13

复制账号是什么

从库要读取主库的二进制日志,必须用一个具备复制相关权限的账号。最小权限组合是复制从库权限:只被允许拉取日志,不能读写业务数据。账号来源网段要限制,密码独立并定期轮换,避免一处泄露影响面扩大。

基本信息

必需权限REPLICATION SLAVE,用于拉取二进制日志
建议权限REPLICATION CLIENT,用于查询复制状态与位点
作用范围全局权限,因此来源主机限制是主要防线
密码插件默认认证插件要求安全连接或密钥交换,老客户端可能不兼容
变更生效授权语句执行后立即生效,不需要重载

典型使用场景

  • 新建从库:先建复制账号,再配置复制起点并启动复制线程
  • 主从重建:从库漂移严重时用同一账号重新挂载
  • 多级复制:中间层也需要拉取日志的账号,来源要限制到上级实例
  • 监控采集:用只读复制状态权限的账号采集复制指标
  • 权限收敛:回收历史上过度授权的复制账号,改为最小权限

创建复制账号

创建复制账号
-- 只允许特定网段连接,最小权限
CREATE USER 'repl'@'10.0.%' IDENTIFIED BY 'Str0ng#Repl!';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repl'@'10.0.%';
-- 核对授权结果
SHOW GRANTS FOR 'repl'@'10.0.%';
-- 从库侧使用该账号挂载复制
CHANGE REPLICATION SOURCE TO SOURCE_HOST='10.0.0.10', SOURCE_USER='repl',
  SOURCE_PASSWORD='***', SOURCE_AUTO_POSITION=1;
START REPLICA;
SHOW REPLICA STATUS\G

权限对照

权限用途是否必需
REPLICATION SLAVE拉取主库二进制日志必需
REPLICATION CLIENT查询主库复制状态与位点建议授予
SELECT读取业务数据不需要,授予即过度授权
全局管理权限管理参数与账号绝不应授予
账号的主机名写具体网段而不是全通配:复制链路通常在同内网,限制来源能显著降低凭据被滥用的风险。
复制账号一旦泄露,攻击者可直接拉取全量变更日志,等价于拿到数据变更的全部内容,因此要按生产凭据管理。

创建后的核对项

  • 核对授权结果:确认只有复制相关权限,没有附带查询或管理权限
  • 核对来源网段:与实例实际所在网段一致,过宽要收敛
  • 登记台账:记录账号用途、归属人与轮换周期
  • 验证连通:用该账号在从库侧发起一次复制连接测试

易错点

  • 给复制账号全局权限:一旦凭据泄露等于开放整个实例
  • 来源主机写死旧 IP:机房或网段调整后复制认证直接失败
  • 复制账号密码与业务账号共用:密码轮换波及面变大,操作风险上升
  • 忘记回收离职人员或临时创建的复制账号:长期无人认领的账号是审计盲区

数据来源与参考

  • MySQL 8.0 Reference Manual: Creating a User for Replication

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌