根据日志,我可以使用以下代码连接到我的远程Mongo服务器:
String mongoUser = vars.get("mongouser");
String userDB = vars.get("userdb");
char[] password = vars.get("password").toCharArray();
MongoCredential credential = MongoCredential.createCredential(mongoUser,
userDB, password);
MongoClientSettings settings = MongoClientSettings.builder()
.applyToClusterSettings {builder ->
builder.hosts(Collections.singletonList(new
ServerAddress(vars.get("mongohost"), vars.get("mongoPort") as int)))}
.build();
MongoClient mongoClient = MongoClients.create(settings);
但是在Iam插入文档时,出现以下错误:
Response code: 500
Response message: Exception: com.mongodb.MongoCommandException: Command
failed with error 13 (Unauthorized): 'command insert requires authentication'
on server 10.80.47.101:27017. The full response is {"ok": 0.0, "errmsg":
"command insert requires authentication", "code": 13, "codeName":
"Unauthorized"}
请注意,我使用相同的身份验证凭据通过NOSQLbooster成功插入了文档。
您正在创建MongoCredential的实例,但未在MongoClientSettings中使用它们(至少我看不到它),需要将其传递给MongoClientSettings.Builder.credential函数。
在使用JMeter进行MongoDB性能测试中,可以找到更简单的身份验证示例:
MongoClient mongoClient = MongoClients.create("mongodb://user:password@mongohost/?authSource=userdb&ssl=true");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句