使用 MongoDB Compass 连接

Posted

技术标签:

【中文标题】使用 MongoDB Compass 连接【英文标题】:Connecting using MongoDB Compass 【发布时间】:2019-01-24 21:28:21 【问题描述】:

我正在尝试使用 MongoDB Compass 查看集合的内容。我设置了用户名/密码身份验证。我可以成功登录,但在集合中看不到任何文档。相反,我看到了错误:

加载导航时出错:命令 hostInfo 需要 身份验证。

以下是用户拥有的角色列表:

"roles": [
    "role": "readWrite",
    "db": "moviesDB"
  ,
  
    "role": "dbAdmin",
    "db": "moviesDB"
  ,
  
    "role": "dbOwner",
    "db": "moviesDB"
  ,
  
    "role": "clusterMonitor",
    "db": "admin"
  ,
  
    "role": "dbAdmin",
    "db": "moviesDB"
  
]

我可以使用 mongo shell 和 node.js 驱动程序成功查询集合,但不能通过 Compass。如果有人能告诉我我做错了什么,我将不胜感激。提前致谢!

【问题讨论】:

您能分享一下您在 mongodb compass 中所做的所有条目吗? 【参考方案1】:

杀死正在运行的 mongodb compass 进程,然后重新启动 compass。

【讨论】:

这救了我一天!【参考方案2】:

我也陷入了同样的问题。它帮助了我:-

方式1:- cmd-1:

use admin
db.createUser(
user: "newUsername",
pwd: "password",
roles: [  role: "userAdminAnyDatabase", db: "admin"  ]
)

cmd-2:

db.grantRolesToUser('newUsername',[ role: "root", db: "admin" ])

方式2:- 尝试从进程中终止 MongoDBCompassCommunity.exe,然后再次重新启动您的指南针并尝试使用凭据登录。

如果这对你也有帮助,请告诉我。

【讨论】:

还可以尝试从进程中终止 MongoDBCompassCommunity.exe,然后再次重新启动您的指南针并尝试使用凭据登录。 第一个选项有效! (我没有尝试第二个)非常感谢!我已经放弃了解决它的希望 =) 重启 MongoDB Compass 为我解决了这个问题。仅仅正确更新 MongoDB 访问权限是不够的,还需要重启 Compass。【参考方案3】:

https://docs.mongodb.com/compass/current/connect/required-access/

我给了 readWriteAnydatabass 和 clustermonitor 然后它起作用了

查看以上文章以查看 MongoCompass 所需的权限

【讨论】:

【参考方案4】:

要通过 compass 提供对 mongoDB 的访问权限,以获得对读/写操作的最小权限,请将角色“clustermonitor”附加到用户,因为这是加载查询所有数据库状态的初始/主屏幕所必需的。

【讨论】:

以上是关于使用 MongoDB Compass 连接的主要内容,如果未能解决你的问题,请参考以下文章

踩坑记录-连接 MongoDB Compass Community 报错

在 Ubuntu 上通过 Compass 加载 MongoDB Atlas 时出错

孤荷凌寒自学python第五十六天通过compass客户端和mongodb shell 命令来连接远端MongoDb数据库

MongoDB—— 客户端MongoDB Compass

MongoDB Compass安装记录

使用 mongodb compass GUI 连接到 docker 内的 Mongodb