AWS EC2实例(生产)中的PostGres超时错误

编程入门 行业动态 更新时间:2024-10-10 21:24:34

AWS EC2<a href=https://www.elefans.com/category/jswz/34/1771375.html style=实例(生产)中的PostGres超时错误"/>

AWS EC2实例(生产)中的PostGres超时错误

我是后端的新手,这是我对Postgres的配置

const pool = new Pool({
      user: "username",
      host: "hostname",
      database: "dbname",
      password: "postgres",
      port: 5432,
      max: 10,
      min: 10,
      statement_timeout: 10000,
      idleTimeoutMillis: 30000,
      connectionTimeoutMillis: 2000,
      maxUses: 7500,
    });

    console.log("requesting db");
    pool.connect((err, client, release) => {
      console.error("Error acquiring client", err);
      console.error("Error acquiring client", client);
      console.error("Error acquiring client", release);
      if (err) {
        return console.error("Error acquiring client", err.stack);
      }
    });
    pool.on("connect", () => {
      console.log("connected to the db");
    });
    pool.on("error", function (err, client) {
      console.log(client);
      console.log(err);
    });
    module.exports = pool;

在生产中,我遇到以下错误,但它在本地有效,我尝试将我的prod DB连接到本地计算机上,但工作正常

Error acquiring client Error: Connection terminated due to connection timeout
at Connection.<anonymous> (/home/ubuntu/TapToCookBackEnd/node_modules/pg/lib/client.js:255:9)
at Object.onceWrapper (events.js:421:28)
at Connection.emit (events.js:315:20)
at Socket.<anonymous> (/home/ubuntu/TapToCookBackEnd/node_modules/pg/lib/connection.js:78:10)
at Socket.emit (events.js:315:20)
at emitCloseNT (net.js:1656:8)
at processTicksAndRejections (internal/process/task_queues.js:83:21)
at runNextTicks (internal/process/task_queues.js:66:3)
at listOnTimeout (internal/timers.js:518:9)
at processTimers (internal/timers.js:492:7)
Error acquiring client undefined
Error acquiring client [Function: NOOP]
Error acquiring client Error: Connection terminated due to connection timeout
    at Connection.<anonymous> (/home/ubuntu/TapToCookBackEnd/node_modules/pg/lib/client.js:255:9)
    at Object.onceWrapper (events.js:421:28)
    at Connection.emit (events.js:315:20)
    at Socket.<anonymous> (/home/ubuntu/TapToCookBackEnd/node_modules/pg/lib/connection.js:78:10)
    at Socket.emit (events.js:315:20)
    at emitCloseNT (net.js:1656:8)
    at processTicksAndRejections (internal/process/task_queues.js:83:21)
    at runNextTicks (internal/process/task_queues.js:66:3)
    at listOnTimeout (internal/timers.js:518:9)
    at processTimers (internal/timers.js:492:7)

以下路线在生产中运行正常,但未与Postgres建立连接

 app.get("/api/v1/test", function (req, res) {
      res.send("Hello World test!");
    });

我的EC2配置

入站规则

出站规则

我的RDS配置

入站规则

出界规则

回答如下:

我怀疑RDS实例没有允许来自您的EC2实例的连接的安全组。请参阅此帮助文章:https://docs.aws.amazon/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html

更多推荐

AWS EC2实例(生产)中的PostGres超时错误

本文发布于:2024-05-07 13:48:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1756528.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:实例   错误   AWS   PostGres

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!