You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB副本集设置报错:执行rs.add命令时提示未授权

解决MongoDB副本集添加节点时的授权错误

嘿,我碰到过一模一样的问题!你这是MongoDB副本集添加节点时踩的权限认证坑,咱一步步来解决:

  • 先确认连接与认证状态
    虽然你创建了带root角色的admin用户,但执行rs.add()这类副本集配置操作时,必须先在admin库完成认证。先切换到admin库并验证身份:

    use admin
    db.auth("user", "你的用户密码")
    

    这是因为MongoDB的权限是库级别的,root角色的权限范围绑定在admin库上,只有在该库认证后,才能获得全局最高权限(包括操作存储副本集配置的local库)。

  • 确保在主节点执行命令
    副本集的配置修改只能在主节点(PRIMARY)上操作,别跑到从节点(SECONDARY)上去操作。先确认当前节点的角色:

    rs.status()
    

    查看输出中的stateStr字段,只有显示"PRIMARY"的节点才有资格执行rs.add()命令。

  • 验证用户权限是否正确
    有时候可能创建用户时出现疏漏,咱再检查一遍:

    use admin
    db.getUser("user")
    

    确保返回结果的roles数组里确实包含{"role": "root", "db": "admin"},如果没有需要重新创建该用户。

  • 带认证参数重新连接(如果上述步骤无效)
    要是你之前的Mongo Shell连接没有带认证参数,直接进入后权限会不足。退出当前连接,用带认证的命令重新登录:

    mongo --host 你的主节点地址 --authenticationDatabase admin -u user -p 你的密码
    

    登录成功后再执行rs.add("ec2-XX-XXX-XX-XXX.compute-1.amazonaws.com")即可。

按这个流程走,基本就能解决not authorized on local to execute command的报错了!

内容的提问来源于stack exchange,提问作者wprins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:30:16