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

PostgreSQL 13与PHP 7.1认证问题:CMD连接报错但浏览器正常

问题解决思路

问题根源

PostgreSQL 13默认采用scram-sha-256(认证方法编号10)作为本地连接的认证方式,但PHP 7.1自带的php_pgsql.dll不支持该认证协议。浏览器运行正常是因为Web环境的连接来源(比如Apache/Nginx的进程身份)在PostgreSQL的认证规则里被允许使用其他兼容的认证方式,或者Web用的PHP配置和CLI环境存在差异。

具体解决步骤

  • 修改PostgreSQL认证配置

    1. 找到PostgreSQL安装目录下的data/pg_hba.conf文件(比如默认路径C:\Program Files\PostgreSQL\13\data\pg_hba.conf)
    2. 找到对应本地IP连接的配置行,通常是类似host all all 127.0.0.1/32 scram-sha-256的内容
    3. 将认证方式从scram-sha-256改为md5,修改后该行变为:host all all 127.0.0.1/32 md5
    4. 重启PostgreSQL服务(可以在Windows服务列表里找到PostgreSQL 13服务,右键重启)
  • 验证PHP环境一致性(可选)
    在CMD中执行php -i,查看Loaded Configuration File项,确认CLI使用的php.ini是否和Web环境一致。如果不一致,检查CLI的php.ini是否开启了php_pgsql.dll扩展,但这不是核心问题,核心还是认证协议兼容问题。

关于php_pgsql.dll的说明

PHP 7.1官方版本的pgsql扩展确实不支持scram-sha-256,该认证方式是从PHP 7.4版本开始才加入支持的,所以找不到对应PHP7.1的兼容版本是正常的,无需浪费时间搜索。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 01:35:26