2016-12-27 3 views
0

У меня есть аккаунт Mongolab, есть только один пользователь в этой учетной записи.Невозможно подключиться к MongoLab от драйвера java

Я могу подключиться к БД с помощью инструмента MongoChef, однако, когда я пытаюсь подключиться к этой БД из Eclipse с помощью java-драйвера 3.2.0, я постоянно получаю отказ от аутентификации. Я получаю следующую ошибку. Я на Java 7.

EDIT Java код, используемый для подключения к MongoLab принимал экземпляр MongoDB.

String mongoURL = new StringBuilder().append("mongodb://").append(mongoUserName).append(":").append(mongoPassword).append("@").append(mongoServer).append(":").append(mongoPort).append("/").append(dbName).toString(); 
    System.out.println(" The Mongo URL is " +mongoURL); 
    MongoClientURI uri = new MongoClientURI(mongoURL); 
    MongoClient mongo = new MongoClient(uri); 

Исключение получено при попытке подключения.

com.mongodb.MongoTimeoutException: Timed out after 30000 ms while 
waiting for a server that matches 
ReadPreferenceServerSelector{readPreference=primary}. Client view of 
cluster state is {type=UNKNOWN, 
servers=[{address=ds061974.mongolab.com:61974, type=UNKNOWN, 
state=CONNECTING, exception={com.mongodb.MongoSecurityException: 
Exception authenticating MongoCredential{mechanism=null, 
userName='xxxx', source='hidden', password=<hidden>, 
mechanismProperties={}}}, caused by 
{com.mongodb.MongoCommandException: Command failed with error 18: 
'Authentication failed.' on server ds061974.mongolab.com:61974. The 
full response is { "ok" : 0.0, "code" : 18, "errmsg" : "Authentication 
failed." }}}] 
+0

вы могли бы поделиться, где вы создаете учетные данные? –

+0

добавил код Java, используемый для подключения к экземпляру MongoDB в теле вопроса. – user1965449

+0

, где находится ваш пользователь? в admin db или db, к которому вы подключаетесь? – Veeram

ответ

0

попробовать этот код:

ServerAddress addr = new ServerAddress(mongoServer, mongoPort); 
MongoCredential credential = MongoCredential.createMongoCredential(
     mongoUserName, mongoPassword, dbName); 

MongoClient mongoClient = new MongoClient(addr, Arrays.asList(credential), null); 
Смежные вопросы