当我尝试在 mongoDB 上建立身份验证时,我的 mongo (docker) 上的 springboot 应用程序的请求出现问题(只要我将其关闭,应用程序就会正确运行)。
mongodb-master:
image: mongo:6.0.3
ports:
- "27017:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: USERNAME
MONGO_INITDB_ROOT_PASSWORD: PASS
hostname: mongodb-master
spring:
data:
mongodb:
uri: mongodb://localhost:27017
database: ${app}
host: mongodb-master
password: PASS
username: USERNAME
authentication-database: ${app}
"message": "Command failed with error 13 (Unauthorized): 'command find requires authentication' on server localhost:27017. The full response is {\"ok\": 0.0, \"errmsg\": \"command find requires authentication\", \"code\": 13, \"codeName\": \"Unauthorized\"}"
正如我所说,当我关闭名称和密码请求时,应用程序运行没有问题。感谢您的任何建议
我尝试了一些 stackoverflow 建议,但找不到任何适合我的情况
更新您的 Spring Boot
application.yml
以使用 Docker 服务名称 (mongodb-master)
而不是 localhost
,并且 ${app}
应替换为您的实际身份验证数据库名称。
spring:
data:
mongodb:
uri: mongodb://USERNAME:PASS@mongodb-master:27017/${app}?authSource=${app}