Привет Я делаю некоторые эксперименты с java и mongoDB. Я успешно установил mongoDB и смог подключиться через командную строку. Но когда я пытаюсь подключиться через java, это дает мне ошибку аутентификации. Я старался следующим образом:Ошибка аутентификации Java mongo db
[email protected]:~$ mongo -u admin -p admin123 --authenticationDatabase admin
MongoDB shell version: 3.2.9
connecting to: test
Server has startup warnings:
2016-09-17T16:29:31.090+0530 I CONTROL [initandlisten]
2016-09-17T16:29:31.090+0530 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2016-09-17T16:29:31.090+0530 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-09-17T16:29:31.090+0530 I CONTROL [initandlisten]
2016-09-17T16:29:31.090+0530 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2016-09-17T16:29:31.090+0530 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-09-17T16:29:31.090+0530 I CONTROL [initandlisten]
>
и через Java код:
package mongo;
import java.net.UnknownHostException;
import java.util.Date;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.Mongo;
import com.mongodb.MongoClient;
import com.mongodb.MongoException;
/**
* Java + MongoDB Hello world Example
*
*/
public class App {
public static void main(String[] args) {
try {
Mongo mongo = new Mongo("localhost", 27017);
DB db = mongo.getDB("testdb");
boolean auth = db.authenticate("admin", "admin123".toCharArray());
if (auth) {
System.out.println("Login is successful!");
} else {
System.out.println("Login is failed!");
}
System.out.println("Done");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (MongoException e) {
e.printStackTrace();
}
}
}
и получил результат для него:
Login is failed!
Done
Есть ли что-нибудь не так? Нужна помощь. Спасибо.
Y ou используют синтаксис драйвера Mongo Java v2. Лучше переключиться на синтаксис Mongo3 (MongoClient и MongoCredentials): http://mongodb.github.io/mongo-java-driver/3.0/driver/reference/connecting/authenticating/ http://www.programcreek.com/java-api -examples/index.php? api = com.mongodb.MongoCredential – Robert
testdb ошибочен, это должно быть испытание. Попробуйте и дайте мне знать, если это поможет. – harshavmb