![](/img/trans.png)
[英]Using AWS SDK for Node.js, how to wait for EC2 instance being added to ECS cluster?
[英]How to connect to postgresql database inside AWS EC2 instance using Node.js and Knex
我在 AWS 上租用了 Ubuntu 16.xx 的 EC2 實例,並在其上安裝了 PostgreSQL。 我在 EC2 上的 PostgreSQL 內創建了一個數據庫和表。 現在我正在嘗試使用knex
通過本地 Node.js 項目連接到數據庫並從數據庫中獲取數據。
我已經從任何地方啟用了端口 5432 到 IP 的入站規則。
但是,它返回如下錯誤消息:
Error: connect ECONNREFUSED 13.229.xxx.xxx:5432
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1142:16) {
errno: -111,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '13.229.xxx.xxx',
port: 5432
}
我要怎么修? 我需要安裝和實施反向代理嗎? 如果是這樣,我該如何設置? 我知道 AWS 上有 RDS,但我需要使用 EC2 來實現它。
以下是我的一些代碼:
這是knex
設置,我安裝了 pg。 與本地數據庫的連接成功。 但是當我將主機切換到公共 IP/私有 IP/ec2-13-229-xxx-xxx.ap-southeast-1.compute.amazonaws.com 時。 它們都返回上述錯誤消息。
development: {
client: 'postgresql',
connection: {
host: '13.229.xxx.xxx',
database: 'project2',
user: 'postgres',
password: 'postgres',
port: 5432,
},
pool: {
min: 2,
max: 10,
},
migrations: {
tableName: 'knex_migrations',
},
},
這是我用來連接服務器的 Node.js 代碼。 一個很簡單的,只是為了測試連接。
const express = require('express');
const hbs = require('hbs');
const app = express();
const knexConfig = require('./knexfile')['development'];
const knex = require('knex')(knexConfig);
let query = knex.select('*').from('users');
query
.then((data) => {
console.log(data);
})
.catch((err) => console.log(err));
另外,我暫停了我的卡巴斯基。
而且我不確定在哪里添加我個人 IP 的權限。
此問題與pg_hba.conf
僅限於本地主機有關。
此外, postgres.conf 需要具有listen_addresses = '*'
。
通過將外部訪問列入白名單,可以訪問數據庫。
本文的額外支持。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.