2013-11-26 125 views
0

我編寫了一個Java程序來連接MongoDb並向其中寫入一些數據。例如,我在192.168.1.95上設置MongoDb並在該服務器上運行我的程序。當我使用以下代碼:Java與MongoDb IP連接問題

MongoClient mongo = new MongoClient("localhost", 27017); 

它正在工作,沒有任何問題。但是,如果我用

MongoClient mongo = new MongoClient("192.168.1.95", 27017); 

它總是拋出一個爲我破例:

Exception in thread "main" com.mongodb.MongoException: unauthorized 
at com.mongodb.CommandResult.getException(CommandResult.java:100) 
at com.mongodb.CommandResult.throwOnError(CommandResult.java:134) 
at com.mongodb.DBTCPConnector._checkWriteError(DBTCPConnector.java:142) 
at com.mongodb.DBTCPConnector.say(DBTCPConnector.java:183) 
at com.mongodb.DBTCPConnector.say(DBTCPConnector.java:155) 
at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:270) 
at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:226) 
at com.mongodb.DBCollection.insert(DBCollection.java:75) 
at com.mongodb.DBCollection.insert(DBCollection.java:59) 
at com.mongodb.DBCollection.insert(DBCollection.java:104) 
at com.starscriber.mongoCluster.Main.main(Main.java:29) 

爲什麼我不能用的,而不是「本地主機」的正是葉?我很確定我不需要任何用戶名和密碼登錄到MongoDB

回答

0

在你的MongoDB服務器配置中聲音像auth = true。如果是這樣,您需要通過首次連接本地主機接口登錄到服務器以創建用戶憑證。有關更多信息,請參見MongoDB手冊

+0

Run-time Database Configuration頁面中的「安全注意事項」。我知道了。因爲我使用keyFile,所以auth = true。 – user3019299