Theo tài liệu định dạng URI chuỗi kết nối là:
mongodb://[username:[email protected]]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
/database
một phần được mô tả là:
Bạn đã thiết lập URI như thế này:
spring.data.mongodb.uri = mongodb://content_rw:<secret password>@a.mongo.db:27017,b.mongo.db:27017,c.mongo.db:27017/contenttest?wtimeoutMS=300&connectTimeoutMS=500&socketTimeoutMS=200
Trong nhật ký của bạn, chúng tôi có thể thấy dòng:
Exception authenticating MongoCredential{mechanism=null, userName='content_rw', source='contenttest', password=<hidden>, mechanismProperties={}}
Trong MongoCredential.java
nguồn source
được mô tả là:
Vì vậy, có vẻ như bạn đã thiết lập cơ sở dữ liệu xác thực là /contenttest
và không phải là:
spring.data.mongodb.authentication-database=admin
Tôi nghĩ bạn nên xóa tên cơ sở dữ liệu khỏi URI và có thể là spring.data.mongodb.authentication-database
thuộc tính, bởi vì admin
cơ sở dữ liệu được sử dụng theo mặc định.
Ngoài ra, hãy xem cái này:
Dòng này sẽ thú vị về mặt thiết lập cơ sở dữ liệu ứng dụng:
spring.data.mongodb.database=test # Database name.