Проблемы с подключением к compose.io mongodb экземпляру с помощью mongoose

Я использую эти инструкции: https://help.compose.com/docs/connecting-to-mongodb

Это строка подключения, которую они дали мне:

MONGO_URI=mongodb://*****:******@aws-us-west-2-portal.1.dblayer.com:15782,aws-us-west-2-portal.0.dblayer.com:15782/mydbname?ssl=true

Это код, который я пытаюсь:

certFileBuff = [fs.readFileSync(MONGO_CERT_PATH)]
options = {
     mongos: true,
     sslCA: certFileBuff,
     sslValidate: false,
     ssl: true
}

mongoose.connect(MONGO_URI, options)

В этот момент я получаю сообщения об ошибках аутентификации:

если я удалю ?ssl=true из строки подключения я получаю ошибку:no mongos proxy available

У кого-нибудь есть мангуст, работающий с compose.io в последнее время?

2 ответа

Как выясняется. У меня был пароль, который не ладил со строкой подключения. Я изменил пароль на что-то более короткое, и это сработало. fwiw пароль, который не работал, был: tapasleechframegoldrabbitsauceb88 (очевидно, я больше не использую)

Что я узнал: если вы получите mongos proxy error это, вероятно, плохой конфиг. Удостовериться ssl=true устанавливается в строке подключения и ssl: true в вашем конфиге.

Если вы получаете code: 18 ошибка аутентификации, тогда пароль либо неправильный, либо неправильно отформатирован.

Вот мой последний рабочий код:

const MONGO_URI = mongodb://****:*****@aws-us-west-2-portal.1.dblayer.com:15782,aws-us-west-2-portal.0.dblayer.com:15782/dbName?ssl=true


let ca, options = {}

if(MONGO_CERT_PATH) {
    try {
        ca = fs.readFileSync(encodeURI(MONGO_CERT_PATH))
        options = {
            mongos: {
                ssl: true,
                sslValidate: true,
                sslCA: [ ca ]
            }
        }
    } catch(err) {
        logger.warn('mongo ssl cert missing')
    }
}

let db = mongoose.connection
db.on('error', (e) => logger.error('connection error:', e))
db.once('open', () => {
    logger.info('db connected')
})

mongoose.connect(MONGO_URI, options)

Если вы не используете шардинг в наборе монго mongos в false, Вы можете прочитать о шардинге в монго здесь https://docs.mongodb.com/manual/core/sharded-cluster-query-router/

Другие вопросы по тегам