Не удалось выполнить запрос с кодом ошибки 13 и сообщением об ошибке «поиск команды требует аутентификации» на сервере localhost: 27017 - PullRequest
0 голосов
/ 09 июля 2020

У меня странная ошибка с MongoDB и Spring Boot. Я использую библиотеку Reactive MongoDb ( spring-boot-starter-data-mongodb-reactive ). Он хорошо работает, когда я помещаю URL-адрес в файл application.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 Ответ

0 голосов
/ 09 июля 2020

Вы должны указать authSource как показано ниже

mongodb://test01:test01@localhost/test_db?authSource=admin
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...