我正在使用想要使用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