दस्तावेज़ीकरण के अनुसार कनेक्शन स्ट्रिंग यूआरआई प्रारूप है:
mongodb://[username:[email protected]]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
/database
भाग को इस प्रकार वर्णित किया गया है:
आपने यूआरआई को इस तरह सेट किया है:
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
आपके लॉग में हम लाइन देख सकते हैं:
Exception authenticating MongoCredential{mechanism=null, userName='content_rw', source='contenttest', password=<hidden>, mechanismProperties={}}
MongoCredential.java
में source
के रूप में वर्णित है:
तो ऐसा लगता है कि आपने प्रमाणीकरण डेटाबेस को /contenttest
. के रूप में सेट किया है और इस रूप में नहीं:
spring.data.mongodb.authentication-database=admin
मुझे लगता है कि आपको यूआरआई से डेटाबेस का नाम हटा देना चाहिए और शायद spring.data.mongodb.authentication-database
संपत्ति, क्योंकि admin
डेटाबेस डिफ़ॉल्ट रूप से उपयोग किया जाता है।
इसे भी देखें:
एप्लिकेशन डेटाबेस की स्थापना के संदर्भ में यह पंक्ति दिलचस्प होनी चाहिए:
spring.data.mongodb.database=test # Database name.