Mongoose不会连接到EC2 MongoDB实例



我正在尝试创建一个连接到EC2实例上托管的mongoDB的node.js服务器。我这样做:

mongoose.connect("mongodb://username:password@ec2-xx-xx-xxx-xxx.eu-central-1.compute.amazonaws.com:27017/dbname");
db.on('error', err => {
    console.log('Mongoose default connection error:', err);
    db.close();
});
db.once('open', () => {
    console.log(`Mongoose default connection open`);
});

但它一直在说我这个错误:

Mongoose default connection error: { MongoError: failed to connect to server [xxx] on first
 connect [MongoError: connect ETIMEDOUT xxx:27017]
    at Pool.<anonymous> (/Users/jmisiti/hm-landing/node_modules/mongodb-core/lib/topologies/server.js:336:35)
    at emitOne (events.js:115:13)
    at Pool.emit (events.js:210:7)
    at Connection.<anonymous> (/Users/jmisiti/hm-landing/node_modules/mongodb-core/lib/connection/pool.js:280:12)
    at Object.onceWrapper (events.js:318:30)
    at emitTwo (events.js:125:13)
    at Connection.emit (events.js:213:7)
    at Socket.<anonymous> (/Users/jmisiti/hm-landing/node_modules/mongodb-core/lib/connection/connection.js:189:49)
    at Object.onceWrapper (events.js:316:30)
    at emitOne (events.js:115:13)
    at Socket.emit (events.js:210:7)
    at emitErrorNT (internal/streams/destroy.js:62:8)
    at _combinedTickCallback (internal/process/next_tick.js:102:11)
    at process._tickCallback (internal/process/next_tick.js:161:9)
  name: 'MongoError',
  message: 'failed to connect to server [xxx] on first connect [MongoError: connect ETIMEDO
UT xxx:27017]' }

我的连接字符串100%确定它有效。我的Mongoose版本与我的MongoDB版本非常有用。任何想法 ?:(

ps:端口在27017上打开,我的AWS实例之一使用了我的MongoDB。所以我确定它可以工作。

确保在EC2安全组中注册了出站端口中的27017端口。

然后尝试访问数据库。而且,如果您已经添加了端口并仍在遇到错误,请检查您是否作为服务运行(即在后台(运行。如果没有,请遵循此过程

得到了它。我无法从本地主机连接到MongoDB服务器(不知道为什么(,但是当我从EC2实例连接到MongoDB服务器时,它可以正常工作。所以很好:(

相关内容

  • 没有找到相关文章

最新更新