sql >> Database >  >> NoSQL >> MongoDB

Maak verbinding met meerdere mongo db-hosts en authenticeer met behulp van een andere database in spring boot

Volgens de documentatie het URI-formaat van de verbindingsreeks is:

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

De /database deel wordt beschreven als:

U heeft de URI als volgt ingesteld:

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 je logs kunnen we de regel zien:

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

In MongoCredential.java de source wordt beschreven als:

Het lijkt er dus op dat u de authenticatiedatabase hebt ingesteld als /contenttest en niet als:

spring.data.mongodb.authentication-database=admin

Ik denk dat je de databasenaam uit de URI moet verwijderen en waarschijnlijk spring.data.mongodb.authentication-database eigenschap, omdat admin database wordt standaard gebruikt.

Kijk ook eens naar dit:

Deze regel zou interessant moeten zijn voor het opzetten van de applicatiedatabase:

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



  1. Mongodb crashte met ongeldige toegang op adres - segmentatiefoutsignaal 11 - versie 2.6

  2. Hoe wissel ik tussen redis-database?

  3. Hoe $ opzoeken door null-waarden in mongodb-aggregaat te vermijden

  4. MongoDb Hoe groeperen op maand en jaar van string