【发布时间】:2015-06-12 01:01:18
【问题描述】:
我正在开发一个想要使用 Mongo Java 库连接到本地 MongoDB 实例的 Scala 框架,但失败了。它用来连接的 URI 是:
mongodb://user:pass@localhost:27017/mydb
这会在我尝试更新集合时引发以下异常:
com.mongodb.CommandFailureException: { "serverUsed" : "localhost:27017" , "ok" : 0.0 , "errmsg" : "auth failed" , "code" : 18}
但是,如果我从 URI 中提取参数并将它们提供给 Mongo shell:
$ mongo -u user -p pass --host localhost --port 27017 mydb
...然后它让我进去!任何人都可以提出为什么会这样吗?
可能但不太可能相关:在我运行我的框架的原始环境(运行 Ubuntu 的戴尔笔记本电脑)中一切正常。现在我正在尝试在 Virtualbox 中运行 Ubuntu 的 Mac 笔记本电脑上运行它。一切都应该几乎(ha)相同,但显然不是。
【问题讨论】:
-
我会检查您的服务器是否接受远程连接,以及您的 shell 使用的 jdk 是否与您的 java 应用程序不同,或者您的防火墙(可能是 iptables)是否存在问题
-
@user3707125 这个问题似乎涉及在现有连接上以管理员身份进行身份验证与建立新连接。就我而言,我使用两种不同的建立新连接的方式(shell 与 API)得到了相互冲突的响应。