我正在EC2 AWS实例上运行节点服务器。那里也有一个postgres数据库。通过CLI连接时:
psql -h localhost -U user -d database
我被提示输入密码,我提供了密码,这一切都很好。但是,当使用pg npm包时,尝试连接时会拒绝连接:
const { Client } = require("pg");
const options = {
host: process.env.DB_HOST,
port: process.env.DB_PORT,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME
};
const dbClient = new Client(options);
function Connect() {
dbClient.connect(function(err) {
if (err) {
console.log(err);
}
else {
console.log("Connected to DB");
}
});
}
我认为我的postgresql.conf或pg_hba.conf出了问题。
postgresql.conf:
listen_addresses = '127.0.0.1' # what IP address(es) to listen on;
port = 5433 # (change requires restart)
max_connections = 100 # (change requires restart)
pg_hba.conf:
local all postgres md5
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local tap2tap dbUser md5
host tap2tap dbUser 127.0.0.1 md5
#local all all md5
# IPv4 local connections:
host myDb dbUser localhost md5
hot myDb dbUser 127.0.0.1 md5
我对Postgres完全陌生,因此请原谅任何新秀错误。任何帮助将不胜感激。
最好, 彼得
答案 0 :(得分:0)
使用Ubuntu时,您使用UNIX套接字(https://node-postgres.com/features/connecting)在本地主机上进行连接:
也可以建立与Unix套接字的连接。这在Ubuntu等发行版中非常有用,在发行版中,通过套接字连接而不是密码来管理身份验证。
这不需要端口号:|
希望这对某人有帮助。