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

AWS EC2中MongoDB容器本地连接授权失败问题求助

问题排查与解决方案

核心原因

你创建的用户kek是admin数据库的超级用户(通过MONGO_INITDB_ROOT_USERNAME初始化),并非dbName数据库的用户。而你在本地连接时错误指定了认证数据库为dbName,导致MongoDB找不到对应用户,触发UserNotFound错误。

Fast API能正常连接的原因是连接字符串里明确指定了authSource=admin,告诉MongoDB去admin库验证用户身份。


快速解决:正确连接MongoDB

使用以下命令连接,和Fast API的认证逻辑保持一致:

mongosh --port 10511 -u kek -p 1234 --authenticationDatabase admin

或者进入mongosh后手动切换到admin库认证:

mongosh --port 10511
# 切换到admin数据库
use admin
# 用root用户认证
db.auth('kek','1234')

认证成功后,你可以切换到dbName库操作数据:

use dbName
# 执行查询或写入操作,比如查看集合
show collections

可选:为dbName创建专属用户

如果不想用admin的超级用户操作业务库,可以给dbName创建单独的读写用户:

  1. 先用上述正确方式登录MongoDB
  2. 切换到dbName库:
    use dbName
    
  3. 创建专属用户:
    db.createUser({
      user: "db_kek",
      pwd: "your_password",
      roles: [{ role: "readWrite", db: "dbName" }]
    })
    
  4. 之后就可以用这个用户连接,指定认证数据库为dbName:
    mongosh --port 10511 -u db_kek -p your_password --authenticationDatabase dbName
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 18:12:54