【问题标题】:Connection to mongo db database using mongoose on a AmazonEC2在 AmazonEC2 上使用 mongoose 连接到 mongo db 数据库
【发布时间】:2016-05-14 04:34:02
【问题描述】:

我在尝试将我的节点 js 服务器连接到我的 EC2 实例上的 mongo 数据库时遇到了很多麻烦。

我使用 docker。

我有一个 mongo 容器。我已经按照这个程序:http://pierrepironin.fr/docker-et-mongodb/

我可以通过 docker exec 连接到它,我可以在我的数据库上做所有事情。

我没有设法在我的节点 js 应用程序中连接到它。我使用 mongoose,这里是我用来连接 mongo 的代码:

exports.mongoConnection = function(mongo_url){
mongoose.connect(mongo_url); 
mongoose.connection.on('connected', function () {  
    logger.info('Mongoose default connection open to ' + mongo_url);
}); 

// If the connection throws an error
mongoose.connection.on('error',function (err) {  
    logger.info('Mongoose default connection error: ' + err);
    logger.info("DB PATH : " + mongo_url);
}); 

// When the connection is disconnected
mongoose.connection.on('disconnected', function () {  
    logger.info('Mongoose default connection disconnected'); 
});

// If the Node process ends, close the Mongoose connection 
process.on('SIGINT', function() {  
    mongoose.connection.close(function () { 
    logger.info('Mongoose default connection disconnected through app termination'); 
    process.exit(0); 
  }); 
}); 
};

我尝试了几个不同的网址,但没有一个有效,每次都会遇到这样的错误:

Mongoose default connection error: MongoError: connect ECONNREFUSED 0.0.0.0:27017

这里有一些我试过但没用的网址:

"mongodb://localhost:27017/test"
"mongodb://0.0.0.0:27017/test"

我还尝试使用我为我的一个数据库创建的用户密码。

"mongodb://my-user:my-password@0.0.0.0.0:27017/my-database" 

我也尝试用我的 EC2 实例 IP 替换 0.0.0.0。

有人知道我在这里做错了吗? 如何连接到我的 mongo ?用哪个网址?

谢谢! :)

【问题讨论】:

    标签: node.js mongodb amazon-ec2 mongoose


    【解决方案1】:

    您的实例的防火墙很可能正在阻止传入请求。为了连接到您的数据库,您需要输入正确的实例 IP 地址(公共 IP)并确保端口是开放的 - 在 AWS 中,这是在“安全组”和“入站”下

    0.0.0.0 在您阅读的文档中用作服务器“侦听”的地址,0.0.0.0 表示它“向世界开放”,这通常并不理想,您需要更改它稍后在您的mongod.conf

    【讨论】:

    • 很高兴听到 :) 你能把我的回答标记为“正确”吗?
    猜你喜欢
    • 2017-08-12
    • 2017-12-01
    • 1970-01-01
    • 2016-12-14
    • 1970-01-01
    • 2019-01-03
    • 2020-04-26
    • 1970-01-01
    • 2020-08-08
    相关资源
    最近更新 更多