java查询失败,在服务器localhost:27017上出现错误代码13和错误消息“command find requires authentication”
MongoDB和Spring Boot出现了奇怪的错误。 我使用反应式MongoDb库(spring boot starter data MongoDb Reactive)。 当我把url放到应用程序中时,它工作得很好。yml文件
spring:
data:
mongodb:
uri: mongodb://test01:test01@localhost/test_db
但当我将其移动到MongoConfig类中时,应用程序会抛出异常
@EnableReactiveMongoRepositories
public class MongoDBConfig extends AbstractReactiveMongoConfiguration {
@Bean
public MongoClient mongoClient() {
return MongoClients.create("mongodb://test01:test01@localhost/test_db?authMode=SCRAM-SHA-1");
}
@Override
protected String getDatabaseName() {
return "test_db";
}
}
例外
Caused by: com.mongodb.MongoQueryException: Query failed with error code 13 and error message 'command find requires authentication' on server localhost:27017
at com.mongodb.internal.operation.FindOperation$3.onResult(FindOperation.java:722) ~[mongodb-driver-core-4.0.4.jar:na]
at com.mongodb.internal.operation.OperationHelper$ReferenceCountedReleasingWrappedCallback.onResult(OperationHelper.java:411) ~[mongodb-driver-core-4.0.4.jar:na]
at com.mongodb.internal.operation.CommandOperationHelper$10.checkRetryableException(CommandOperationHelper.java:493) ~[mongodb-driver-core-4.0.4.jar:na]
在代码中使用时,连接字符串似乎不起作用
你知道吗? 请帮忙
# 1 楼答案
您应该指定
authSource
,如下所示# 2 楼答案
回答晚了,但以下几点对我有用
此类应该在调用存储库的服务中自动连接。见下文:
这应该会有帮助