PostgreSQL本地连接超时故障(原可正常连接)
PostgreSQL本地连接超时/拒绝排查方案
问题现象
原本可正常连接的PostgreSQL现出现本地连接异常:
- pgAdmin连接超时
- 执行
psql命令报错:>> psql psql: error: connection to server at "localhost" (::1), port 5432 failed: Connection refused (0x0000274D/10061) Is the server running on that host and accepting TCP/IP connections? connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused (0x0000274D/10061) Is the server running on that host and accepting TCP/IP connections? - 可成功执行单用户模式命令:
postgres --single -D "C:/Program Files/PostgreSQL/14/data" - 已重启
postgres-x64-16服务,问题未解决
排查步骤
确认服务运行状态
打开Windows服务管理器(运行services.msc),找到postgres-x64-16服务,查看是否处于「正在运行」状态。若未运行,尝试手动启动并观察报错;也可通过命令行查询:sc query postgres-x64-16检查输出中的
STATE字段是否为RUNNING。检查端口占用情况
执行以下命令查看5432端口是否被其他进程占用:netstat -ano | findstr :5432若存在非PostgreSQL的进程占用端口,找到对应PID并结束该进程,之后重启PostgreSQL服务。
验证配置文件正确性
- 打开
C:/Program Files/PostgreSQL/14/data下的postgresql.conf:- 确认
listen_addresses设置为'localhost'或'*',确保允许本地TCP连接; - 检查
port参数是否为5432,若端口已修改,连接时需指定对应端口。
- 确认
- 打开同目录下的
pg_hba.conf,确保存在允许本地连接的规则,例如:host all all 127.0.0.1/32 scram-sha-256 host all all ::1/128 scram-sha-256
修改配置后必须重启PostgreSQL服务生效。
- 打开
核对服务关联的Data目录
你当前单用户模式使用的是PostgreSQL 14的Data目录,但服务是postgres-x64-16(16版本),可能存在服务配置的Data目录与预期不一致的情况:
打开postgres-x64-16服务的属性,查看「可执行文件的路径」,确认-D参数后的Data目录是否正确(例如是否为16版本的Data目录)。若路径错误,修改服务配置或调整连接目标版本。查看日志定位启动失败原因
进入Data目录下的pg_log文件夹,打开最新的日志文件,查看服务启动时的具体报错信息(如权限不足、配置错误、数据损坏等),这是排查服务启动失败的核心依据。
内容的提问来源于stack exchange,提问作者Jason
相关产品推荐
相关产品推荐

