Mongo服务器接受来自shell的凭据,但不接受来自Java / Scala接口的凭据

时间:2015-06-12 01:01:19

标签: java mongodb

我正在开发一个想要使用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)相同的,但显然不是某种方式。

2 个答案:

答案 0 :(得分:0)

显然是版本不匹配。我尝试卸载Ubuntu提供的3.0.3并使用我从mongodb.org下载的2.6.10,我的库终于能够连接了。

这是在我发现日志中的一行后,内存中的一行是“用户文档中找不到凭据”。

伙计,我知道在跨越主要版本号时可能会出现一些破损,但是防止老客户甚至完全无法连接似乎非常极端。

答案 1 :(得分:0)

在我的情况下,我必须将我的mongo驱动程序从$(window).on('load resize', function(event){ var windowSize = $(window).width(); // Could've done $(this).width() if(windowSize < 992){ // your check here } else if(windowSize > 994){ // other statements } }); 升级到v2.12.5才能使其正常工作。

相关问题