You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL连接报错ECONNREFUSED:地址配置问题求助

解决PostgreSQL连接被拒绝的实用步骤

1. 修改PostgreSQL监听地址

PostgreSQL默认仅监听本地回环地址(127.0.0.1),这会导致其他IP无法连接:

  • 找到PostgreSQL配置文件,路径通常为/etc/postgresql/[你的PostgreSQL版本号]/main/postgresql.conf(例如10版本对应/etc/postgresql/10/main/postgresql.conf)
  • 使用编辑器打开(如sudo nano 上述路径),找到listen_addresses配置项,将默认值localhost改为*(监听所有IP),或明确指定127.0.0.1,192.168.0.2
  • 按Ctrl+O保存、Ctrl+X退出,重启PostgreSQL服务:sudo systemctl restart postgresql

2. 验证PostgreSQL监听状态

执行命令ss -tlpn | grep postgres,查看输出中是否包含0.0.0.0:5432或192.168.0.2:5432。若仅显示127.0.0.1:5432,说明配置未生效,需检查配置文件路径是否正确。

3. 配置数据库用户连接权限

PostgreSQL通过pg_hba.conf控制用户连接权限,文件路径与postgresql.conf相同:

  • 执行sudo nano /etc/postgresql/[版本号]/main/pg_hba.conf打开文件,添加以下两行(替换括号内为你的实际信息):
    host    [你的数据库名]    [你的数据库用户名]    127.0.0.1/32    md5
    host    [你的数据库名]    [你的数据库用户名]    192.168.0.2/32    md5
    
  • 保存退出后,再次重启PostgreSQL服务。

4. 核对Sequelize配置细节

  • 确认环境变量DB_NAME、DB_USER、DB_PASS配置正确,可临时在代码中添加打印验证:
    console.log('数据库信息:', process.env.DB_NAME, process.env.DB_USER, process.env.DB_PASS);
    
  • 若应用与数据库在同一服务器,优先使用127.0.0.1作为host,避免内网IP带来的额外网络问题
  • 修正timezone配置:'Europe'为无效值,需改为具体时区(如'Europe/London')

5. 检查防火墙端口规则

Ubuntu 18.04默认使用ufw防火墙,执行sudo ufw status查看是否允许5432端口访问。若未配置,添加规则:sudo ufw allow 5432/tcp,然后重启防火墙:sudo ufw reload


内容的提问来源于stack exchange,提问作者chipikov_m

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 22:47:37