Mongodb Can';t通过shell登录到Mongo
我们正在通过VPN开发远程MongoDB基地。在我的本地机器上,有三个客户端实例:NodeJS服务器、Compass社区实例和Mongodb Can';t通过shell登录到Mongo,mongodb,Mongodb,我们正在通过VPN开发远程MongoDB基地。在我的本地机器上,有三个客户端实例:NodeJS服务器、Compass社区实例和mongoshell(或mongoexport) 表单的相同URLmongodb://user:pass@ip:port在所有三种情况下都使用,Node.js和Compass都可以正常工作。当我使用Windows PowerShell并从中调用mongo时,问题开始出现: MongoDB shell version v3.6.5 Enter password: conne
mongo
shell(或mongoexport
)
表单的相同URLmongodb://user:pass@ip:port
在所有三种情况下都使用,Node.js和Compass都可以正常工作。当我使用Windows PowerShell并从中调用mongo
时,问题开始出现:
MongoDB shell version v3.6.5
Enter password:
connecting to: mongodb://{ip}:{port}/
MongoDB server version: 3.6.4
2018-06-27T18:02:00.031+0700 E QUERY [thread1] Error: Authentication failed. :
DB.prototype._authOrThrow@src/mongo/shell/db.js:1608:20
@(auth):6:1
@(auth):1:2
exception: login failed
其中
ip
和port
是实际值的占位符。我们没有访问Mongo配置的权限,所以我可以使用shell进行连接吗?非常确定您使用了错误的数据库。运行mongo
启动mongo后,必须使用use database\u name
然后才能使用db.auth(“用户名”、“密码”)
进行身份验证
编辑
默认情况下,您的数据库是admin,所以如果您使用的是另一个数据库,则必须将其打开。事实证明,可以使用显式声明的身份验证数据库进行连接。也就是说,以下行不起作用:
mongo --host mongodb://user:pass@ip:port/ --authenticationDatabase admin
mongoexport --host mongodb://user:pass@ip:port/ --authenticationDatabase admin --db db --collection collection -o ./file.json
在这个链接的问题中找到了
--authenticationDatabase
键,添加这个后我可以连接。似乎DB在默认情况下没有配置为使用admin
数据库。我甚至不能使用任何东西。在执行mongo
命令之后,上述错误阻止了我。