Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 尝试从spring boot docker容器连接到mongo docker容器时验证MongoCredential时出错?_Mongodb_Spring Boot_Docker_Docker Compose_Application.properties - Fatal编程技术网

Mongodb 尝试从spring boot docker容器连接到mongo docker容器时验证MongoCredential时出错?

Mongodb 尝试从spring boot docker容器连接到mongo docker容器时验证MongoCredential时出错?,mongodb,spring-boot,docker,docker-compose,application.properties,Mongodb,Spring Boot,Docker,Docker Compose,Application.properties,我有以下docker compose文件,用于连接到mongoDB容器的Spring引导容器: # # APIs #---------------------------------------------- pokerstats: image: pokerstats container_name: pokerstats ports: - 8080:8080 depends_on: - db # # Utilities #-----

我有以下
docker compose
文件,用于连接到
mongoDB容器的
Spring引导容器

#
# APIs
#----------------------------------------------
  pokerstats:
    image: pokerstats
    container_name: pokerstats
    ports:
      - 8080:8080
    depends_on: 
      - db

#
# Utilities
#----------------------------------------------
  db:
    image: mongo
    container_name: mongo
    volumes:
      - ./database:/data
    ports:
      - "27017:27017"
    environment:
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: admin
      MONGO_INITDB_DATABASE: pokerStats  
在我的spring boot
application.properties中,我有:

server.port=8080
spring.main.allow-bean-definition-overriding=true

spring.data.mongodb.uri=mongodb://admin:admin@mongo:27017/pokerStats
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.database=pokerStats
当我尝试使用Postman访问我的端点时,我得到以下错误:

{
        "timestamp": "2020-04-07T17:39:19.129+0000",
        "status": 500,
        "error": "Internal Server Error",
        "message": "Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='admin', source='pokerStats', password=<hidden>, mechanismProperties=<hidden>}; nested exception is com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='admin', source='pokerStats', password=<hidden>, mechanismProperties=<hidden>}",
        "path": "/rounds"
    }

您的错误消息表明authSource正在运行。但是用户是在管理数据库中创建的,根据我通过找到的数据库

因此,我假设此配置不正确:

spring.data.mongodb.authentication-database=admin

我不熟悉spring数据,因此我不知道如何正确配置它。

您的错误消息表明authSource正在运行。但是用户是在管理数据库中创建的,根据我通过找到的数据库

因此,我假设此配置不正确:

spring.data.mongodb.authentication-database=admin

我不熟悉spring数据,因此不知道如何正确配置它。

我可以通过添加以下内容来解决此问题:

应用程序。属性:

spring.data.mongodb.uri=mongodb://admin:admin@mongo:27017/pokerStats?authSource=admin
spring.data.mongodb.authentication-database = admin
spring.data.mongodb.database=pokerStats

我相信:
?authSource=admin
需要添加到mongo uri的末尾。

我可以通过添加以下内容来解决此问题:

应用程序。属性:

spring.data.mongodb.uri=mongodb://admin:admin@mongo:27017/pokerStats?authSource=admin
spring.data.mongodb.authentication-database = admin
spring.data.mongodb.database=pokerStats
我认为:
?authSource=admin
需要添加到mongo uri的末尾