【发布时间】:2020-10-27 15:24:37
【问题描述】:
我正在尝试连接我的远程 EC2 mongodb,但它显示 MongooseServerSelectionError: connect ECONNREFUSED awsip:27017
在 aws mongodb 配置文件中,我将 bindIp 更改为 0.0.0.0,但我没有更改安全部分。
这是一个快速应用程序,我尝试通过两种方式与 aws mongodb 连接,两种方式都出现同样的错误,这是我的数据库设置:
Setup: 01
const DATABASE_URL = `mongodb://${cfg.dbUser}:${cfg.dbPass}@${cfg.dbHost}:${cfg.dbPort}/${cfg.dbName}`
server.listen(port, () => {
mongoose.connect(DATABASE_URL,
{
// auth: {
// user: cfg.dbUser,
// password: cfg.dbPass
// },
useNewUrlParser: true,
useUnifiedTopology: true,
})
.then(() => {
console.log("[ ???? ] AWS MongoDB database connected.");
console.log(`[ Server ] waiting on: ${cfg.serverHost}:${port}`);
})
.catch(err => {
console.log(
"[ ???? ] Database connection error",
{ Error: err }
);
})
});
Setup: 02
const DATABASE_URL = `mongodb://${cfg.dbHost}:${cfg.dbPort}/${cfg.dbName}`
server.listen(port, () => {
mongoose.connect(DATABASE_URL,
{
auth: {
user: cfg.dbUser,
password: cfg.dbPass
},
useNewUrlParser: true,
useUnifiedTopology: true,
})
.then(() => {
console.log("[ ???? ] AWS MongoDB database connected.");
console.log(`[ Server ] waiting on: ${cfg.serverHost}:${port}`);
})
.catch(err => {
console.log(
"[ ???? ] Database connection error",
{ Error: err }
);
})
});
我已经在 aws 中创建了数据库以及所有数据库用户权限凭证。
我正在使用 dotenv 加载所有 aws 凭据
当我尝试从我的机器连接 MongoDB-Compass 时也出现同样的问题。
connect ECONNREFUSED awsip:27017
希望专家能帮助我。
【问题讨论】:
-
您是否允许对 mongodb 安全组进行入站安全访问?
-
是的,我有。对不起,我忘了提。
-
两个服务器的安全组是什么样子的?
-
好的,我可以和你分享我的安全组。自定义 TCP TCP 27017 0.0.0.0/0 - 自定义 TCP TCP 27017 ::/0 -
-
在涉及您的应用程序之前获取与
mongoshell 的连接。
标签: node.js mongodb amazon-web-services amazon-ec2