0
$dbconn = pg_connect("host=localhost   dbname=mydbname   user=myuser    password=mypass") or die(pg_last_error());

返回Unable to connect to PostgreSQL server: FATAL: no pg_hba.conf entry for host "::1 ...",

我应该做什么?

PS In 文件php.ini模块extension php_pgsql.dll已启用

4

1 回答 1

2

将帮助您确定问题的性质。

看起来您正在尝试通过 IPv6 进行连接(因此::1),并且主机pg_hba.conf没有允许您从 IPv6 环回地址(::1)作为用户myuser连接到数据库的规则mypass

我怀疑服务器配置错误;要解决它,请尝试将主机指定为127.0.0.1(IPv4 环回地址)而不是localhost,或者如果 PHP 支持,则完全省略host=使用 unix 域套接字。

您的声明“当使用 mysql(在远程服务器上)时,我们可以使用 host=localhost 作为主机值,对吗?” 对于 MySQL 和 PostgreSQL 来说都是完全没有意义的。如果它是远程服务器,那么根据定义它不在本地主机上。在一个疯狂的猜测中,我认为您可能试图说服务器是远程的,因为它不是您正在使用的计算机,而是您正在运行的程序的本地,因为您正在远程服务器上运行程序(通过在远程服务器上编辑它,通过 FTP 上传程序文本,或其他方式)。

于 2013-04-19T00:59:35.960 回答