PostgreSQL 13改端口后5432端口连接被拒绝且服务无法启动怎么解决?
Windows 10 下PostgreSQL 13端口修改后服务启动失败解决步骤
操作前请先完整备份PostgreSQL的data目录,避免误操作导致数据丢失。
步骤1:查看启动错误日志定位问题
PostgreSQL启动失败的具体原因会记录在日志中,默认日志路径为安装目录下data\pg_log文件夹,打开最新的日志文件即可查看明确报错信息,根据报错可直接定位问题点。
步骤2:检查核心配置文件语法正确性
- 检查
postgresql.conf文件:确认port = 5432配置无多余字符、错误注释符号,listen_addresses配置为*或者localhost,无语法错误。 - 检查
pg_hba.conf文件:确认认证规则格式无错误,未额外添加不符合规范的规则,本地连接默认规则如下即可:
host all all 127.0.0.1/32 scram-sha-256
host all all ::1/128 scram-sha-256
步骤3:排查5432端口占用
以管理员身份打开PowerShell或CMD,执行命令:netstat -ano | findstr :5432
如果命令有输出结果,说明5432端口已被其他程序占用:
- 记录输出最后一列的PID值
- 打开任务管理器「详细信息」标签页,找到对应PID的程序,终止该程序,或修改该程序的占用端口后再启动PostgreSQL服务。
步骤4:修复data目录权限
PostgreSQL服务运行需要对应账号对data目录有完全控制权限:
- 右键点击PostgreSQL的data目录,选择「属性」→「安全」
- 点击「编辑」→「添加」,查找服务运行账号(默认安装为
postgres用户,部分场景为NETWORK SERVICE) - 给该账号勾选「完全控制」权限,保存配置后重新尝试启动服务。
步骤5:手动启动服务查看明确报错
如果上述操作后仍无法启动,可通过命令行手动启动获取详细报错:
- 进入PostgreSQL安装目录下的
bin文件夹,默认路径为C:\Program Files\PostgreSQL\13\bin - 在地址栏输入
cmd回车,打开当前目录的命令行窗口 - 执行启动命令(
-D后替换为你实际的data目录路径):pg_ctl start -D "C:\Program Files\PostgreSQL\13\data"
命令执行后会输出完整的启动失败原因,根据提示针对性解决即可。
内容的提问来源于stack exchange,提问作者WorkWork
相关产品推荐
相关产品推荐

