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

已放行0.0.0.0/0,PostgreSQL数据库昨日可连今日无法连接求助

PostgreSQL连接失败排查方案
  • 确认PostgreSQL服务状态
    在Cloud Shell中执行systemctl status postgresql(适用于systemd系统)或pg_ctl status,检查服务是否正常运行,有没有异常重启、崩溃记录。如果服务异常,先重启服务再测试:systemctl restart postgresql。

  • 验证PostgreSQL监听配置
    检查postgresql.conf中的监听地址设置,确保允许所有IP访问:

    cat /var/lib/postgresql/<你的PostgreSQL版本>/main/postgresql.conf | grep listen_addresses
    

    输出应为listen_addresses = '*',如果不是,修改该配置后重启PostgreSQL服务(注意替换命令中的版本号,比如14、15)。

  • 排查云安全组/本地防火墙规则

    1. 登录云控制台查看数据库实例的安全组入站规则,确认5432端口(PostgreSQL默认端口)的规则是否仍为0.0.0.0/0允许访问,有没有新增拒绝规则或规则被覆盖。
    2. 在Cloud Shell中检查服务器本地防火墙状态:
      • 对于ufw:执行ufw status,确认5432端口允许外部访问;
      • 对于iptables:执行iptables -L -n | grep 5432,确认没有拦截外部连接的规则。
        如果发现本地防火墙拦截,执行ufw allow 5432或对应iptables命令开放端口,再重启防火墙服务。
  • 检查PostgreSQL访问控制规则(pg_hba.conf)
    查看pg_hba.conf文件,确认存在允许所有外部IP连接的规则:

    cat /var/lib/postgresql/<你的PostgreSQL版本>/main/pg_hba.conf
    

    需包含类似以下的规则:

    host    all             all             0.0.0.0/0               md5
    

    如果缺少该规则,添加后重启PostgreSQL服务。

  • 分析连接失败日志定位根因
    查看PostgreSQL日志文件(默认路径/var/log/postgresql/postgresql-<版本>-main.log),聚焦昨晚9点左右的日志内容:

    • 若日志显示connection refused:优先排查监听配置、防火墙/安全组问题;
    • 若日志显示password authentication failed:检查客户端连接时的用户名/密码是否正确,或pg_hba.conf的认证规则是否匹配;
    • 若日志显示no pg_hba.conf entry:说明pg_hba.conf未允许对应IP的连接规则。
  • 确认服务器公网IP是否变更
    在Cloud Shell中执行curl ifconfig.me获取当前公网IP,对比本地客户端连接时使用的IP地址,确认是否因IP变更导致连接失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 09:42:52