$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 ...",
我必须做什么?
P.S。在文件php.ini
模块extension php_pgsql.dll
已启用
答案 0 :(得分:2)
看起来您正在尝试通过IPv6进行连接(因此::1
),并且主机的pg_hba.conf
没有允许您从IPv6环回地址连接的规则({{1} })用户::1
到数据库myuser
。
我怀疑服务器配置错误;要解决此问题,请尝试将主机指定为mypass
(IPv4环回地址)而不是127.0.0.1
,或者如果PHP支持,则完全省略localhost
以使用unix域套接字。
您的语句“当使用mysql(在远程服务器上)时,作为主机值,我们可以使用host = localhost吗?”对于MySQL和PostgreSQL都是完全没有意义的。如果它是远程服务器,那么根据定义它不在localhost上。我猜想你可能会试图说服务器是远程的,因为它不是你正在使用的计算机,但它是你运行的程序的本地 因为你正在运行远程服务器上的程序(通过在远程服务器上编辑它,通过FTP上传程序文本,或其他)。