“致命:主机没有pg_hba.conf条目”,但我可以通过pgAdmin连接

时间:2015-04-20 03:43:50

标签: postgresql cakephp heroku xampp

我在基于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,但是没有运气,检查了{{1}并且pnp.ini行没有注释,尝试过几次重启apache但没有任何改变

该项目在heroku平台下托管,我的extension=php_pdo_pgsql.dll看起来像

/app/config/database.php

这里是Stack Trace

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

任何人都可以给我另一个可能有帮助的提示吗?

1 个答案:

答案 0 :(得分:1)

在我找到解决方案之后。

问题在于并不简单。

由于Postgres服务器托管在heroku平台下,服务器上的默认配置为require ssl,因此我遇到了此配置:

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' s libpq.dll是用ssl支持编译的,所以这是我可以通过pgAdmin连接的原因,但不能用php连接

感谢帮助人们!