如何解决连接到同一台机器上的 Postgres 服务器时超时
出于开发目的,我在我的(Windows 10)笔记本电脑上安装了 PostgreSQL 13 服务器。 我开始用它开发一个 nodejs/express 应用程序,它运行良好,直到几天后它突然停止工作,没有对代码进行任何更改。
我已经能够使用以下脚本重现错误:
const pg = require('pg');
const db = new pg.Pool({
host: "localhost",port: 5432,user: "postgres",password: "admin",database: "postgres"
});
db.query('SELECT NOW()').then(result => {
console.log(result.rowCount);
}).catch(console.error);
错误是:
Error: connect ETIMEDOUT 127.0.0.1:5432
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1145:16) {
errno: -4039,code: 'ETIMEDOUT',syscall: 'connect',address: '127.0.0.1',port: 5432
}
那不会太奇怪,但是,如果我运行 psql -h localhost -p 5432 -U postgres -d postgres
,提供 admin
作为密码并输入 SELECT NOW()
,我do 获取当前时间。从 Python 连接也有效。
更奇怪的是,我还在台式机上安装了 PostgreSQL 13 和 Node。当我在那里运行脚本时,它起作用了! (好吧,我收到错误的密码错误,这是可以理解的,这意味着它至少可以连接。)
为了使它甚至更奇怪,当我尝试从我的笔记本电脑连接到我的台式机时,它可以工作,当我从我的台式机连接到我的笔记本电脑时,它也 > 有效。
此外,即使将 localhost
更改为实际的内部 IP,它也无法在我的笔记本电脑上运行。 (然后它不会超时,而是永远挂起。)
有人请帮忙。我不知道什么会阻止我在同一台机器上仅使用 Node.js 进行连接。
pg_hba.conf
:
local all all scram-sha-256
host all all 127.0.0.1/32 scram-sha-256
host all all ::1/128 scram-sha-256
local replication all scram-sha-256
host replication all 127.0.0.1/32 scram-sha-256
host replication all ::1/128 scram-sha-256
host all all 192.168.1.1/23 scram-sha-256
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。