Caused by: com.mongodb.MongoCommandException: Command failed with error 18 (AuthenticationFailed): ‘Authentication failed.’ on server localhost:27017. The full response is {“ok”: 0.0, “errmsg”: “Authentication failed.”, “code”: 18, “codeName”: “AuthenticationFailed”}
报错配置1:
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.username=root
spring.data.mongodb.password=123456
spring.data.mongodb.database=test
报错配置2:
spring.data.mongodb.uri=mongodb://root:123456@localhost:27017/test
正确配置
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.username=root
spring.data.mongodb.password=123456
spring.data.mongodb.database=test
spring.data.mongodb.authentication-database=admin
网上百度了很多, 都是把上面的配置1改成配置2, 但我这儿都会报错。
其实问题是在于, spring.data.mongodb.database
是指需要连接的业务数据库。
而登录鉴权时所需的是认证数据库, 对应这条配置: spring.data.mongodb.authentication-database
我用到的root用户, 他的数据在admin库中, 那么认证数据库就是admin了