我在 Windows 7 下完成了大部分 PHP/PostgreSQL 开发,但正在迁移到 Linux。我最近在 Debian Wheezy 上安装了 PHP 和 PostgreSQL,并且在使用 postgres 用户连接到我的 PostgreSQL 数据库时遇到了困难。我在 stackoverflow 上找到了一个帖子,上面说要执行以下操作:
template1=# ALTER USER postgres WITH PASSWORD 'password';
最初,对于密码,我使用了一个空字符串,但它不起作用。接下来我使用了一个文本字符串,它允许我通过 pg_connect() 进行连接。
经过更多研究后,我发现更改 pg_hba.conf 文件并使 postgres 用户受信任确实是我想要做的......在进行此更改时,当未通过 pg_connect 提供密码时,我仍然遇到错误( ) 对于 postgres 用户,所以我的问题是:
即使身份验证方法设置为信任,使用密码更改 postgres 用户是否会导致 pg_connect() 需要密码?当我使用以下命令通过命令行连接时:
psql -U postgres
我没有问题...问题开始于使用 pg_connect() 通过 PHP 连接时。
pg_hba.conf 文件:
local all postgres trust
local all all trust
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
PHP连接线:
pg_connect('host=localhost dbname=dev user=postgres');