【问题标题】:"FATAL: no pg_hba.conf entry for host" but I can connect trough pgAdmin“致命:主机没有 pg_hba.conf 条目”但我可以通过 pgAdmin 连接
【发布时间】:2015-04-21 01:11:52
【问题描述】:

我在基于 CakePHP 的项目的开发环境中遇到了一点问题。 问题是,CakePHP 可以在生产环境中连接,但是如果我在我的 PC 上通过 XAMPP 运行,那么会给我一个 FATAL: no pg_hba.conf entry for host "myexternalip", user "dbuser", database "dbname", SSL off

但使用相同的参数,我可以通过 pgAdmin 从我的 PC 连接。

我尝试了一些我发现的谷歌搜索技巧,例如将 libpq.dllc:\xampp\php 复制到 c:\xampp\apache\bin 但是,没有运气,检查了 pnp.iniextension=php_pdo_pgsql.dll 行未注释,尝试重新启动apache 几次,但没有任何变化

项目托管在heroku平台下,我的/app/config/database.php看起来像

public $production = array(
    'datasource' => 'Database/Postgres',
    'persistent' => false,
    'host' => 'anywhere.at.amazonaws.com',
    'login' => 'dbuser',
    'password' => 'dbpwd',
    'database' => 'dbname',
    'encoding' => 'utf8',
);

这是堆栈跟踪

- CORE\Cake\Model\Datasource\DboSource.php line 260 → Postgres->connect()
- CORE\Cake\Model\ConnectionManager.php line 105 → DboSource->__construct(array)
- CORE\Cake\Model\Model.php line 3613 → ConnectionManager::getDataSource(string)
- CORE\Cake\Model\Model.php line 1155 → Model->setDataSource(string)
- CORE\Cake\Model\Model.php line 3640 → Model->setSource(string)
- CORE\Cake\Model\Model.php line 827 → Model->getDataSource()

谁能给我另一个可以帮助的提示?

【问题讨论】:

  • 您可以更改服务器上 postgres.conf 中的“记录内容”部分,以查看您使用 Pgadmin 连接的 IP...
  • 猜测,pg_hba.conf 有一个127.0.0.1 的条目,PgAdmin 正在连接到环回地址,但 XAMPP 正在连接到外部主机地址。或者至少,这就是源地址选择的结果。也可能是 IPv4 与 IPv6 的问题。 如果您需要有关 pg_hba.conf 的帮助,请显示 pg_hba.conf 的内容
  • 我无法访问 ph_hba.conf,因为 postgres 服务器托管在 heroku 平台中

标签: postgresql cakephp heroku xampp


【解决方案1】:

后来我找到了解决办法。

问题在于这并不简单。

由于Postgres服务器托管在heroku平台下,服务器上的默认配置是requiressl,所以我遇到了这样的配置:

public $production = array(
    ......
    'sslmode' => 'require',
);

现在错误已更改为sslmode value "require" invalid when ssl support is not compiled

然后我用 google 搜索了一下,似乎至少在 XAMPP v5.5.19 下,PHP 文件夹中的 libpq.dll 没有在 ssl 支持下编译

这是帮助我解决此问题的问题: How to installPostgreSQL client library for PHP on Windows with SSL enabled

似乎pgAdmin的libpq.dll是用ssl支持编译的,所以这就是我可以通过pgAdmin连接,但不能用php连接的原因

感谢大家的帮助!

【讨论】:

    猜你喜欢
    • 2013-10-19
    • 2014-10-27
    • 2020-05-19
    • 2014-06-14
    • 2013-08-06
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    相关资源
    最近更新 更多