【发布时间】:2019-01-11 14:47:33
【问题描述】:
我的情况很奇怪。我正在运行一个连接到 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 ReplicaSet 4.0.4 版
Java 8
【问题讨论】:
-
你尝试拆分
spring.data.mongodb.port=中的主机和端口吗?从文档来看,似乎主机和端口都是预期的:docs.spring.io/spring-boot/docs/current/reference/html/… -
我没有添加端口,因为它只是默认的(27017)。
-
你是对的,它说
If spring.data.mongodb.port is not specified, the default of 27017 is used. You could delete this line from the example shown earlier.。最初错过了那部分。 -
用户或密码的 URL 形式是否包含任何 % 或 + 字符?
-
不!用户名和密码只是数字和字母。主机名有一个“。”
标签: java spring spring-boot spring-data uri