从节点报NOAUTH需配置masterauth且与主节点requirepass完全一致(含大小写、空格),必须写入redis.conf并重启生效,不支持CONFIG SET动态修改。

从节点无法自动完成主从同步,八成是 masterauth 配置缺失或不匹配,而不是网络或配置文件没 reload。
从节点日志报 NOAUTH Authentication required 怎么办
这是最典型的症状:从节点尝试连接主节点时被拒绝,INFO replication 显示 master_link_status:down,且 connected_slaves:0。它和“主节点 requirepass 设了密码”强相关,但很多人误以为只要所有节点 requirepass 一致就万事大吉。
- 主节点的
requirepass控制客户端连接认证,不影响主从链路 - 从节点连接主节点时,必须显式提供
masterauth—— 它是独立于requirepass的配置项 - 哪怕主从密码相同,漏配
masterauth,从节点仍会以无密码方式发起复制握手,主节点直接返回NOAUTH - 配置位置必须在
redis.conf(不是sentinel.conf),且需重启 Redis 进程生效(不支持CONFIG SET动态修改)
replicaof 命令生效后又断开,可能卡在 replid/offset 校验
执行 REPLICAOF 192.168.1.100 6379 后短暂显示 up,几秒后变 down,说明握手通过但同步失败。常见于主从 replid 不一致 + repl-backlog 不足的组合场景。
- 主节点刚重启过,
replid已变更,而从节点仍带着旧replid和offset请求增量同步 → 主节点拒绝,触发全量同步 - 若此时主节点
repl-backlog-size过小(如默认 1MB),而全量同步耗时较长,期间新写入命令撑爆缓冲区 → 从节点 offset 失效,被迫重试全量,形成循环 - 验证方法:在从节点执行
INFO replication,看master_replid是否与主节点一致;再查主节点的INFO replication中repl_backlog_active和repl_backlog_size - 临时缓解:增大主节点
repl-backlog-size至 64MB 或更高,避免缓冲区快速覆盖
哨兵模式下从节点不自动挂到新主,其实是 SENTINEL set 没跑全
主节点宕机后,哨兵选出了新主,但从节点仍连着老主地址(或干脆失联),INFO replication 里 master_host 没更新。这不是哨兵失职,而是从节点压根没收到重配置指令。
- 哨兵完成故障转移后,会向所有已知从节点发送
SLAVEOF命令 —— 但前提是该从节点已被当前哨兵发现并纳入监控范围 - 如果某台从节点启动晚、或长期网络抖动未上报心跳,哨兵的
SENTINEL sentinels mymaster输出里就没有它,自然不会给它发指令 - 检查方式:逐台连哨兵,执行
SENTINEL slaves mymaster,确认输出是否包含全部从节点 IP+端口;缺失的,说明哨兵根本“看不见”它 - 补救操作:在缺失的从节点上手动执行
SLAVEOF,再等哨兵下次巡检将其纳入管理
真正棘手的点往往藏在“看起来都配对了”的地方:比如 masterauth 写在注释行后面、空格没删干净导致解析失败;或者哨兵配置了 sentinel monitor mymaster,但某台从节点的 replicaof 指向的是别名而非 IP,哨兵无法做地址归一化。这些细节不打日志、不报错,只让同步静默失效。











