MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Connectez-vous à plusieurs hôtes mongo db et authentifiez-vous à l'aide d'une base de données différente au démarrage du printemps

Selon la documentation le format URI de la chaîne de connexion est :

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

La /database la pièce est décrite comme :

Vous avez configuré l'URI comme ceci :

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

Dans vos journaux, nous pouvons voir la ligne :

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

Dans MongoCredential.java le source est décrit comme :

Il semble donc que vous ayez configuré la base de données d'authentification en tant que /contenttest et non comme :

spring.data.mongodb.authentication-database=admin

Je pense que vous devriez supprimer le nom de la base de données de l'URI et probablement spring.data.mongodb.authentication-database propriété, car admin la base de données est utilisée par défaut.

Regardez aussi ceci :

Cette ligne devrait être intéressante pour la mise en place de la base de données de l'application :

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