NestJS+TypeORM连接PostgreSQL报错ECONNREFUSED ::1:5432求助
解决PostgreSQL连接ECONNREFUSED ::1:5432问题
排查步骤
1. 确认PostgreSQL服务状态
打开Windows服务管理器(Win+R输入services.msc),找到PostgreSQL 14服务,检查状态是否为「正在运行」。若未运行,右键点击「启动」,并设置启动类型为「自动」避免下次重启后停止。
2. 强制使用IPv4连接
将TypeORM配置中的host从localhost改为127.0.0.1,强制通过IPv4连接(Windows下localhost可能优先解析为IPv6地址::1,而PostgreSQL默认可能未开启IPv6监听):
TypeOrmModule.forRoot({ type: 'postgres', host: '127.0.0.1', // 替换原有的localhost port: 5432, username: 'postgres', password: 'my_password', database: 'database_name', entities: [NewsEntity], synchronize: true, }),
同时在pgAdmin的服务器连接配置中,将「主机名/地址」也改为127.0.0.1,重新尝试连接。
3. 配置PostgreSQL监听地址
找到PostgreSQL安装目录下的data/postgresql.conf文件(通常路径如C:\Program Files\PostgreSQL\14\data),修改listen_addresses参数:
listen_addresses = '*' # 允许所有IP连接,或指定为'127.0.0.1,::1'同时支持IPv4和IPv6
修改后保存文件,重启PostgreSQL服务生效。
4. 检查Windows防火墙拦截
打开Windows Defender防火墙的「高级设置」,确认存在允许PostgreSQL(或5432端口)入站的规则。若没有,手动创建规则允许TCP 5432端口的通信,或临时关闭防火墙测试连接是否恢复。
内容的提问来源于stack exchange,提问作者Viktor
相关产品推荐
相关产品推荐

