我试图用登录凭据连接MongoDB数据库。我在Java项目中使用了这些jar文件(bson-3.8.2,mongodb-driver-3.9.1和mongodb-driver-core-3.8.2),并且它们在我的代码中都是必需的。为了将Java代码与MongoDB数据库连接,我使用了以下代码:
MongoCredential credential = MongoCredential.createScramSha1Credential("myUserAdmin", "admin", "abc123".toCharArray());
MongoClient mongoCl = new MongoClient(hostname, 27017), Arrays.asList(credential));
MongoDatabase db = mongoCl.getDatabase( "mydb" );
MongoCollection collection = db.getCollection("employee");
FindIterable<Document> fi = collection.find();
MongoCursor<Document> cursor = fi.iterator();
while (cursor.hasNext()) {
Document doc = cursor.next();
String ename = doc.getString("email");
System.out.println("Email: " + ename);
}
“主机名”是其他系统的IP地址,因为我想连接该系统的MongoDB数据库。
在创建“ myUserAdmin”时,我已授予readwriteanydatabase权限。
尝试运行代码时引发以下异常:
异常:com.mongodb.MongoSecurityException:认证MongoCredential {mechanism = SCRAM-SHA-1
的异常为了创建凭据,我尝试了许多方法,例如createScramSha1Credential,createScramSha256Credential,createCredential,createPlainCredential
相同的代码在MongoDB中将身份验证设置为false用于数据库连接。
有人可以向我解释如何解决此问题吗? 预先感谢。