NOAUTH Authentication required 表明从节点连接主节点后因认证失败被拒,根本原因是 masterauth 未配置或与 requirepass 不一致(含大小写、空格),且 Redis 6.2 前不支持动态设置,必须重启生效。

从节点日志出现 NOAUTH Authentication required 是什么信号
这不是从节点自己缺密码,而是它连上主节点后发命令(比如 PSYNC、REPLCONF)被拒了。主节点返回 NOAUTH,说明认证流程卡在中间环节——可能过了 AUTH,但后续命令没权限;也可能压根没认证成功。
masterauth 配错了或根本没配
主节点启用了密码(requirepass),但从节点没告诉自己“主节点要什么密码”。这个密码必须通过 masterauth 显式填进从节点的配置文件里:
-
masterauth的值必须和主节点requirepass完全一致,包括大小写、空格、特殊字符 - 不能只靠
redis-cli连上去执行AUTH,那是给客户端用的,不影响复制链路 - Redis 6.2 之前不支持
CONFIG SET masterauth "xxx"动态生效,改完必须重启从节点服务 - 如果主节点是集群模式,所有 master 节点都要确认该密码能通
主节点用了 ACL 用户,但没配 masteruser
Redis 6.0+ 默认启用 ACL,requirepass 只对 default 用户生效。如果主节点创建了专用复制用户(比如 ACL SETUSER repluser on >mypass +replconf +psync),从节点光有 masterauth 不够,还必须加一行:
Redis 缓存和数据结构管理技能。通过自然语言操作 Redis,支持 String、Hash、List、Set、ZSet、Stream 等数据结构操作。当用户提到 Redis、缓存、消息队列、会话存储时使用此技能。
-
masteruser repluser—— 用户名必须和主节点ACL GETUSER repluser输出一致 - 该用户必须显式授予
+replconf、+psync、+sync、+ping四个命令权限,+@all或+@read都不行 - 如果主节点开了
replica-announce-ip,还得加+client - ACL 用户不能是
default,也不能用requirepass替代
日志里看到 MASTER SLAVE sync started 却没下文
这说明 TCP 连接已建立、PING 也通了,但卡在 PSYNC 或 REPLCONF 阶段。此时重点不是网络或防火墙,而是权限细节:
- 检查从节点
INFO replication中的master_link_status是否为up,master_last_io_seconds_ago是否持续增长 - 主节点
INFO clients里是否真有从节点的连接记录(看 client type=slave) - 从节点日志中若出现
Failed to AUTH with master: -NOAUTH Authentication required,大概率是 ACL 权限漏了+replconf或+psync - 别依赖
CONFIG REWRITE生效配置,改完redis.conf必须重启服务
最容易被忽略的是:ACL 模式下,masteruser 和 masterauth 必须成对出现,且权限必须精确到命令级——少一个 + 就断在握手最后一步。

















