Abh*_*kar 2 mongodb amazon-web-services node.js
从node.js连接到AWS DocumentDB时出现以下错误
连接错误:{[MongoNetworkError:与docdb-2019-01-28-06-57-37.cluster-cqy6h2ypc0dj.us-east-1.docdb.amazonaws.com:27017超时的连接1]名称:'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...");
});
Run Code Online (Sandbox Code Playgroud)
默认情况下,aws documentdb设计为仅从同一VPC连接。因此,要从同一vpc中的ec2连接nodejs应用程序。您需要拥有pem文件,因为默认情况下在创建数据库实例时启用了SSL。
步骤1:$ wget https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem 在所需目录中
步骤2:使用指向pem文件的选项更改猫鼬连接
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'));
Run Code Online (Sandbox Code Playgroud)
这里正在使用猫鼬5.4.0
要从VPC外部进行连接,请尝试从AWS遵循以下文档:https ://docs.aws.amazon.com/documentdb/latest/developerguide/connect-from-outside-a-vpc.html
我个人只是尝试从VPC进行连接,但效果很好。
更新=====:>
要从VPC外部的Robo 3T连接,请单击链接- 带Robo 3T的AWS DocumentDB(Robomongo)
| 归档时间: |
|
| 查看次数: |
2988 次 |
| 最近记录: |