gpt4 book ai didi

java - MongoDB 通过 Java : CommandFailureException, 代码 18

转载 作者:可可西里 更新时间:2023-11-01 10:04:12 25 4
gpt4 key购买 nike

当从 Java 运行 MongoDB 查询时,出现以下错误:

com.mongodb.CommandFailureException: { "serverUsed" : "AAA.BBB.CCC.DDD:27017" , "code" : 18 , "ok" : 0.0 , "errmsg" : "auth fails"}
at com.mongodb.CommandResult.getException(CommandResult.java:76)
at com.mongodb.CommandResult.throwOnError(CommandResult.java:131)
at com.mongodb.DBPort$NativeAuthenticator.authenticate(DBPort.java:652)
at com.mongodb.DBPort.authenticate(DBPort.java:364)
at com.mongodb.DBPort.checkAuth(DBPort.java:375)
at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:291)
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:271)
at com.mongodb.DBCollectionImpl.find(DBCollectionImpl.java:84)
at com.mongodb.DBCollectionImpl.find(DBCollectionImpl.java:66)
at com.mongodb.DBCursor._check(DBCursor.java:458)
at com.mongodb.DBCursor._hasNext(DBCursor.java:546)
at com.mongodb.DBCursor.hasNext(DBCursor.java:571)

当我在 RoboMongo 中使用相同的凭据时,我可以连接到相同的数据库。

在 Java 中,我使用以下代码连接到它:

public void init() {
try {
final ServerAddress serverAddress = new ServerAddress("AAA.BBB.CCC.DDD", 27017);

final MongoCredential credential = MongoCredential.createMongoCRCredential("user",
"dbName", "password".toCharArray());

mongoClient = new MongoClient(serverAddress, Arrays.asList(credential));

db = mongoClient.getDB("dbName");
state = getPersistenceState();
} catch (final UnknownHostException exception) {
LOGGER.error("", exception);
}
}

我正在使用 MongoDB 2.4.10 和 Mongo Java 驱动程序 2.12.2。

如何修改代码才能查询和修改数据库?

最佳答案

  1. 检查您是否能够使用 mongo shell 验证并运行您的查询:“mongo --authenticationDatabase dbName -u user -p”

  2. 查看 mongod 日志并寻找失败的身份验证尝试 - 通常是有问题

关于java - MongoDB 通过 Java : CommandFailureException, 代码 18,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24965110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com