MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Verbinden Sie sich mit mehreren Mongo-DB-Hosts und authentifizieren Sie sich mit einer anderen Datenbank im Spring Boot

Gemäß der Dokumentation Das URI-Format der Verbindungszeichenfolge ist:

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

Die /database Teil wird beschrieben als:

Sie haben den URI wie folgt eingerichtet:

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

In Ihren Protokollen können wir die Zeile sehen:

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

In MongoCredential.java die source wird beschrieben als:

Es sieht also so aus, als hätten Sie die Authentifizierungsdatenbank als /contenttest eingerichtet und nicht als:

spring.data.mongodb.authentication-database=admin

Ich denke, Sie sollten den Datenbanknamen aus dem URI und wahrscheinlich spring.data.mongodb.authentication-database entfernen Eigenschaft, weil admin Datenbank wird standardmäßig verwendet.

Sehen Sie sich auch Folgendes an:

Diese Zeile dürfte für den Aufbau der Anwendungsdatenbank interessant sein:

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