我们正在通过 VPN 开发远程 MongoDB 基础。在我的本地机器上运行三个客户端实例:NodeJS 服务器、Compass Community 实例和mongoshell(或mongoexport)。
mongodb://user:pass@ip:port在所有三种情况下都使用了相同的表单 URL ,并且 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
Run Code Online (Sandbox Code Playgroud)
whereip和portare here 是真实值的占位符。我们无法访问 Mongo 配置,所以我可以做些什么来使用 shell 进行连接?
结果证明可以使用明确声明的身份验证数据库进行连接。即,以下几行确实有效:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6038 次 |
| 最近记录: |