我正在使用这些说明: https://help.compose.com/docs/connecting-to-mongodb#mongoose-node-and-compose
这是他们给我的连接字符串:
%f
这是我正在尝试的代码:
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
最近有没有人和moseoose一起使用compose.io?
答案 0 :(得分:0)
如果您未在mongo set SelectedValue
中使用分片到ComboBox
。
你可以在这里阅读关于mongo的分片https://docs.mongodb.com/manual/core/sharded-cluster-query-router/
答案 1 :(得分:0)
事实证明。我有一个与连接字符串不相符的密码。我将密码更改为更短的密码并且有效。 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)