我编写了一个Java程序来连接MongoDb并将一些数据写入其中。例如,我在192.168.1.95上设置MongoDb并在该服务器上运行我的程序。当我使用以下代码时:
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)
为什么我不能使用完全Ip而不是“localhost”?而且我很确定我不需要任何用户名和密码来登录MongoDb
答案 0 :(得分:0)
在MongoDB服务器配置中听起来像auth = true。如果是这样,您需要首次通过localhost接口连接来登录服务器以创建用户凭据。有关详细信息,请参阅MongoDB手册的Run-time Database Configuration页面中的“安全注意事项”部分