sql >> Base de Datos >  >> NoSQL >> MongoDB

Conéctese a múltiples hosts mongo db y autentíquese usando una base de datos diferente en Spring Boot

Según la documentación el formato del URI de la cadena de conexión es:

mongodb://[username:[email protected]]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

El /database parte se describe como:

Ha configurado el URI de esta manera:

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

En sus registros podemos ver la línea:

Exception authenticating MongoCredential{mechanism=null, userName='content_rw', source='contenttest', password=<hidden>, mechanismProperties={}}

En MongoCredential.java la source se describe como:

Parece que ha configurado la base de datos de autenticación como /contenttest y no como:

spring.data.mongodb.authentication-database=admin

Creo que debería eliminar el nombre de la base de datos del URI y probablemente spring.data.mongodb.authentication-database propiedad, porque admin la base de datos se utiliza de forma predeterminada.

Además, mira esto:

Esta línea debería ser interesante en términos de configuración de la base de datos de la aplicación:

spring.data.mongodb.database=test # Database name.