node.js - 日志:无法从客户端接收数据:连接超时 AWS RDS POstgresql
问题描述
我正在使用 AWS RDS Postgresql。
当我的网站尝试连接到数据库时,它说:
net::ERR_CONNECTION_TIMED_OUT
但是,我可以从 ec2 实例和通过 pgAdmin 连接到数据库。
Elastic Beanstalk 不会在日志中显示任何错误。它运行我的后端代码,即 Nodejs 并且没有错误。EB 的健康状况是“严重”,但它没有任何 Html 页面,因为它仅用于后端。所以,我猜这里的健康状况并不重要,因为日志显示它在端口 8080 上运行,并且不存在错误。
RDS 日志显示以下内容:
database@database:[9935]:LOG: could not receive data from client: Connection timed out
我不明白为什么我的客户端无法连接到数据库。密码和主用户名以及端点正确。
我在 Elastic Beanstalk for Postgres 中使用的参数:
RDS_DB_NAME, RDS_HOSTNAME, RDS_PASSWORD, RDS_PORT, RDS_USERNAME
要从我的本地终端和 EC2 实例连接,我使用:
psql --host=endpoint --port=5432 --username=username --password --dbname=database
与 Postgres 的连接:它在部署应用程序之前在本地工作。
const { Pool } = require('pg');
const pool = new Pool({
host : process.env.RDS_HOSTNAME,
user : process.env.RDS_USERNAME,
password : process.env.RDS_PASSWORD,
port : process.env.RDS_PORT,
database : process.env.RDS_DB_NAME
});
module.exports = pool;
pool.connect(function(err) {
if (err) {
return console.error('error: ' + err.message);
}
console.log('Connected to the Postgres server.');
});
然后弹性 beanstalk 日志文件显示它已连接:
web: Connected to the MySQL server.
解决方案
推荐阅读
- javascript - 为什么javascript内联对象创建一个新的添加键不起作用?
- c# - 关闭表单后基于服务的数据库未保存
- xcode - 如何在基于文档的 Mac 应用程序中为我的文档添加自定义文档图标?
- ng-bootstrap - 如何在入门演示完整示例(搜索、排序、页面和过滤器)中调用实际服务而不是本地 JSON
- javascript - 前端使用两个不同的域(内部域和外部域)与后端通信
- r - 如何使用正则表达式识别 icd10 数据中的模式
- javascript - javascript - 两个按钮分别打开 2 个 iframe
- r - 由于第一阶段的单个 PSU 过多而导致的问题
- litho - 如何自动运行 Litho 动画?
- vb.net - Crystal Report 加载报告失败 vb.net