我使用3.0.0驱动程序连接到mongodb 2.6.3的简单程序失败了
“命令失败,并显示错误59:服务器...上没有此cmd:saslStart”。
非常感谢任何见解。
public static void main(String[] args) {
MongoCredential credential = MongoCredential.createCredential(MY_TEST_DATABASE_USER, MY_TEST_DATABASE, MY_TEST_DATABASE_PWD);
// MongoCredential credential = MongoCredential.createScramSha1Credential(MY_TEST_DATABASE_USER, MY_TEST_DATABASE, MY_TEST_DATABASE_PWD); // this failed as well
try (MongoClient mongoClient = new MongoClient(new ServerAddress(DB_SERVER_2_6_3, DB_PORT), Arrays.asList(credential))) {
MongoDatabase mdb = mongoClient.getDatabase(MY_TEST_DATABASE);
MongoCollection<Document> coll = mdb.getCollection(MY_TEST_COLLECTION);
if (coll != null) {
System.out.println(coll.find().first());
}
}
}
最佳答案
通过反复试验弄清楚。 (对于此问题,Mongo在线支持/文档感到失望)
创建凭据时使用“ admin”数据库。通过查看Robomongo客户端中的连接设置可以解决此问题。
MongoCredential credential = MongoCredential.createCredential(MY_TEST_DATABASE_USER, "admin", MY_TEST_DATABASE_PWD);