【问题标题】:connection error while connecting to AWS DocumentDB连接到 AWS DocumentDB 时出现连接错误
【发布时间】:2019-06-21 04:46:32
【问题描述】:

从 node.js 连接到 AWS DocumentDB 时出现以下错误

连接错误:{ [MongoNetworkError: connection 1 to docdb-2019-01-28-06-57-37.cluster-cqy6h2ypc0dj.us-east-1.docdb.amazonaws.com:27017 超时]名称:'MongoNetworkError',errorLabels:[ 'TransientTransactionError'] }

这是我的节点 js 文件

app.js

var mongoose = require('mongoose');
mongoose.connect('mongodb://abhishek:abhishek@docdb-2019-01-28-06-57-37.cluster-cqy6h2ypc0dj.us-east-1.docdb.amazonaws.com:27017/?ssl_ca_certs=rds-combined-ca-bundle.pem&replicaSet=rs0', {
    useNewUrlParser: true
});
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
    console.log("connected...");
});

【问题讨论】:

    标签: node.js mongodb amazon-web-services


    【解决方案1】:

    默认情况下,aws documentdb 旨在仅从同一 VPC 进行连接。 因此,要从同一 vpc 中的 ec2 连接 nodejs 应用程序。您需要在创建数据库实例时启用 pem 文件,因为默认情况下启用了 SSL。

    第 1 步:$ wget https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem 在所需目录中

    第 2 步:使用指向 pem 文件的选项更改 mongoose 连接

    mongoose.connect(database.url, {
        useNewUrlParser: true,
        ssl: true,
        sslValidate: false,
        sslCA: fs.readFileSync('./rds-combined-ca-bundle.pem')})
    .then(() => console.log('Connection to DB successful'))
    .catch((err) => console.error(err,'Error'));
    

    这里使用的是 mongoose 5.4.0

    要从 VPC 外部连接,请尝试遵循 aws 中的以下文档: https://docs.aws.amazon.com/documentdb/latest/developerguide/connect-from-outside-a-vpc.html

    就我个人而言,我只尝试从 VPC 进行连接,并且效果很好。

    更新 =====:>

    要从 VPC 外部的 Robo 3T 连接,请点击链接 - AWS DocumentDB with Robo 3T (Robomongo)

    【讨论】:

    • 如何从 lambda 连接它
    • 你能举一个禁用 tls 的例子吗?
    猜你喜欢
    • 1970-01-01
    • 2022-08-21
    • 1970-01-01
    • 1970-01-01
    • 2020-04-04
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    相关资源
    最近更新 更多