我正在使用想要使用Mongo Java库连接到本地MongoDB实例但失败的Scala框架。它用来连接的URI是:Mongo服务器接受来自shell的凭证,但不能从Java/Scala接口接收凭证
mongodb://user:[email protected]:27017/mydb
这会导致抛出以下异常,当我尝试更新的集合:
com.mongodb.CommandFailureException: { "serverUsed" : "localhost:27017" , "ok" : 0.0 , "errmsg" : "auth failed" , "code" : 18}
但是,如果我提取从URI参数,并给他们到了Mongo外壳:
$ mongo -u user -p pass --host localhost --port 27017 mydb
......然后它让我进入!任何人都可以提出为什么这可能是?
可能但不可能是相关的:在运行我的框架的原始环境中,一切运行正常,运行Ubuntu的戴尔笔记本电脑。现在我试图在Virtualbox上运行Ubuntu的Mac笔记本电脑上运行它。一切应该几乎(哈)相同,但显然不是某种程度。
我会检查你的服务器是否接受远程连接,如果你的shell使用与你的java应用程序不同的jdk,或者你的防火墙(iptables也许)在打扰 –
你读过这篇文章:http://stackoverflow.com/问题/ 18216712 /无法验证进入mongo-auth-fails? – user3707125
@ user3707125这个问题似乎涉及作为现有连接的管理员进行身份验证与创建新连接。在我的情况下,我通过两种不同的方式创建一个新的连接(shell与API),得到了相互冲突的响应。 – Sean