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

PostgreSQL连接失败求助:SQLSTATE[08006] [7] 连接被拒绝

PostgreSQL连接错误SQLSTATE[08006] [7] 排查方案

针对更新PostgreSQL、启用pdo_pgsql扩展后出现的连接拒绝错误,且已尝试端口开放、修改listen_addresses及pg_hba.conf仍未解决的情况,可按以下步骤排查:

  • 确认PostgreSQL服务运行状态
    执行命令检查服务是否正常启动:

    systemctl status postgresql
    

    若显示inactive,启动服务并设置开机自启:

    systemctl start postgresql
    systemctl enable postgresql
    
  • 验证监听地址与端口是否生效
    检查PostgreSQL实际监听的地址和端口,确认配置已应用:

    ss -tulpn | grep postgres
    

    正常应显示0.0.0.0:5432或:::5432(IPv6)。若仍显示127.0.0.1:5432,说明修改的配置文件路径错误:

    • Debian/Ubuntu系统配置文件通常在/etc/postgresql/<版本号>/main/postgresql.conf
    • CentOS/RHEL系统通常在/var/lib/pgsql/<版本号>/data/postgresql.conf
      确认修改对应实例的配置文件后,重启服务:
    systemctl restart postgresql
    
  • 补充IPv6访问规则
    错误提示涉及IPv6地址::1,需在pg_hba.conf中追加IPv6全局访问规则:

    host    all             all             ::/0                 md5
    

    保存后重启PostgreSQL服务。

  • 确认pdo_pgsql扩展加载成功
    检查PHP是否正确加载扩展:

    php -m | grep pdo_pgsql
    

    若无输出,需:

    • 确认在正确的php.ini文件中取消了extension=pdo_pgsql的注释(注意CLI和FPM的php.ini路径可能不同)
    • 重新安装扩展(Debian/Ubuntu执行apt install php-pdo-pgsql,CentOS/RHEL执行yum install php-pdo-pgsql)
      完成后重启PHP-FPM服务:
    systemctl restart php-fpm
    
  • 测试本地连接排查权限问题
    在服务器本地尝试连接,验证用户权限:

    psql -U <数据库用户名> -d <数据库名> -h localhost
    

    若连接失败,检查pg_hba.conf中的本地连接规则,确保存在类似条目:

    local   all             all                                     md5
    

    保存后重启服务重试。

  • 检查额外防火墙与安全组

    • 若使用firewalld(CentOS/RHEL),开放端口:
      firewall-cmd --add-port=5432/tcp --permanent
      firewall-cmd --reload
      
    • 云服务器需检查安全组规则,确保5432端口已对客户端IP或所有IP开放。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 12:55:19