我有一个非常奇怪的情况。 我正在运行一个连接到MongoDb实例的Java spring-boot应用程序。 当我使用
spring.data.mongodb.uri=mongodb://{username}:{password}@{host}
字段时,我可以成功连接。 但是当我使用:
spring.data.mongodb.host={host}
spring.data.mongodb.username={username}
spring.data.mongodb.password={password}
我遇到了身份验证失败的问题,是什么原因呢?当然,括号中的值完全相同。
我在两个设置中都包含了这些内容:
spring.data.mongodb.authentication-database={auth-db}
spring.data.mongodb.database={mydb}
其他细节
非uri方法在一个环境中可行,但在我尝试修复的另一个环境中不起作用。
将两个服务器都运行在同一个Docker Swarm中
Mongo副本集版本4.0.4
Java 8
spring.data.mongodb.port=
中分离主机和端口吗?从文档中可以看出,主机和端口都是必需的:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-nosql.html#boot-features-connecting-to-mongodb - Vlad Topala