测试环境:
- SpringBoot 2.01
- mongoDB 4.4
在application.yaml中,我原本是这样配置的,通过这个方式手动连mongo的客户端是没有问题的,原本以为可以直接成功,没想到还是我naive。
spring:
data:
mongodb:
uri: mongodb://username:password@127.0.0.1:27017
database: databaseName
报错信息如下,意思就是说你还是没有认证:
'command find requires authentication' on server localhost:27017
搜索之后,找到了能正确认证的配置方式,如下:
spring:
data:
mongodb:
host: 127.0.0.1
port: 27017
username: username
password: password
database: dataBaseName
authenticationDatabase: admin
authenticationDatabase
是在创建用户时指定的权限域,也就是某个库。如果最开始没有设置这个字段,给我报了Cluster description not yet available. Waiting for 30000 ms before timing out
这个错误,声明之后即可正常运行。