<?php
// Connecting, selecting database
$dbconn = pg_connect("host=localhost dbname=masi user=postgres password=abc")
or die('Could not connect');
?>
我明白了
Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: FATAL: password authentication failed for user "postgres" in /var/www/ex1.php on line 3
问题似乎出在我的/etc/postgresql/8.3/main/pg_hba.conf
. 看来我需要在文件中添加一些 ip-address。
我的 pg_dba.conf 中的代码
# Database administrative login by UNIX sockets
local all postgres ident sameuser
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all ident sameuser
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
该错误似乎在 PostgresSQL 中,因为 PHP 和 Apache2 可以工作。我可以通过 访问 Psql sudo -u postgres psql
,因为我没有设法更改默认设置。这很可能是问题的原因。但是,我的 PHP 代码使用默认设置,所以这应该不是问题。
我在/etc/apache2/envvars中更改了一行,但未成功:
export APACHE_RUN_USER=postgres // I changed this line from masi to postgres
export APACHE_RUN_GROUP=www-data
export APACHE_PID_FILE=/var/run/apache2.pid
我收到相同的错误消息。
如何在 Ubuntu 中通过 pg_hba.conf 让 PHP 与 PostgreSQL 一起工作?
#1 问题
通过以下方式登录用户 Postgres
创建一个新用户,例如 Masi for PostgreSQL 通过
然后,重新登录到您的默认用户。
#2 问题
Pg 中的默认用户没有密码。这导致了PHP中的问题。
我将其更改
dbconn
为以下问题是我不知道默认 Postgres 帐户的密码。这迫使我创建一个带有密码的新帐户。
如果没有数据库中的密码,我没有让 pgAdmin 3 工作。
尝试
或者
链接文本
我通过将以下行添加到
pg_dba.conf
.