2013-04-18 60 views
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 ...",PHP的连接到PostgreSQL

我必须做什么?

P.S.在文件php.ini模块extension php_pgsql.dll已启用

+0

你的'pg_hba.conf'文件包含什么? – hjpotter92

+0

我不知道,这是远程服务器。 – RIKI

+2

那么你如何使用'host = localhost'呢? – hjpotter92

回答

2

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

它看起来像你想的IPv6(因此::1)进行连接和主机的pg_hba.conf没有一个规则,允许您从IPv6的环回地址(::1)为用户myuser连接到数据库mypass

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

您的声明“当使用mysql(在远程服务器上)时,作为主机值我们可以使用host = localhost权限吗?”对于MySQL和PostgreSQL来说,是完全无意义的。如果它是远程服务器,那么它根据定义不在本地主机上。我想你可能会试图说服务器是远程的,因为它不是你正在使用的计算机,但是它对你正在运行的程序是,因为你正在远程运行程序服务器(通过在远程服务器上编辑它,通过FTP上传程序文本,或其他)。