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

MongoDB 3.6管理员用户创建及登录失败问题求助

解决MongoDB 3.6管理员用户创建后登录失败的问题

我帮你梳理一套靠谱的操作流程,应该能解决你遇到的创建用户成功但登录失败的问题,步骤很清晰,跟着做就行:

第一步:确保MongoDB处于无认证状态启动

创建管理员用户必须在MongoDB没开启身份验证的环境下操作,不然连创建的权限都没有:

  • 先停掉MongoDB服务:Linux系统可以用 systemctl stop mongod,Windows直接关掉对应服务进程即可
  • 打开mongod.conf配置文件,找到security区块,如果里面有authorization: enabled这一行,先把它注释掉(加个#)或者删掉
  • 重启MongoDB服务:systemctl start mongod

第二步:正确创建管理员用户

现在登录MongoDB Shell,按下面的步骤创建用户:

# 直接启动MongoDB Shell
mongo

# 切换到admin数据库(关键!管理员用户必须在这个库下创建)
use admin

# 创建拥有最高权限的root用户,把<你的用户名>和<你的密码>换成你想设的内容
db.createUser(
  {
    user: "<你的用户名>",
    pwd: "<你的密码>",
    roles: [ { role: "root", db: "admin" } ]
  }
)

执行完如果看到Successfully added user的提示,就说明用户创建成功了。

第三步:开启身份验证并重启服务

现在要让MongoDB启用用户认证:

  • 再次打开mongod.conf,在security区块里添加(或者取消注释)这两行:
security:
  authorization: enabled
  • 重启MongoDB服务让配置生效:systemctl restart mongod

第四步:用管理员用户登录验证

现在有两种正确的登录方式,选一种就行:

方式一:登录时直接指定账号密码和认证数据库

mongo -u "<你的用户名>" -p "<你的密码>" --authenticationDatabase "admin"

方式二:先进入Shell再认证

# 先进入MongoDB Shell
mongo

# 切换到admin数据库
use admin

# 执行认证,返回1就是成功,0是失败
db.auth("<你的用户名>", "<你的密码>")

几个容易踩坑的点要注意

  • 一定要在admin数据库下创建管理员用户,MongoDB的用户是和数据库绑定的,root角色的用户只能在admin库生效
  • 登录时必须指定--authenticationDatabase "admin",不然MongoDB会默认去当前连接的数据库(比如test)找用户,肯定找不到
  • 如果密码里有特殊字符(比如!@#$),登录时一定要用引号把密码包起来,避免被Shell解析错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:17:53