使用 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数据库