1

我有一个奇怪的问题。我有一个使用 PostgreSQL 8.3 运行的服务。在并行平台上,我安装了 PostgreSQL 9.1 并尝试使用我的工作 php 脚本连接到它。得到了答案:

pg_connect(): Unable to connect to PostgreSQL server: 
FATAL: no pg_hba.conf entry for host "X.X.X.X", 
user "postgres", database "dbtrsy", SSL off

我的 pg_hba.conf 包含:

host    all         all         X.X.X.X/32      password
host    all         all         Y.Y.Y.Y/32      password

我可以使用 YYYY 的 PgAdmin 轻松连接到 DB 现在奇怪的是:我查看日志,我可以看到:

LOG:  connection received: host=X.X.X.X port=55696
LOG:  connection authorized: user=postgres database=dbtrsy
LOG:  disconnection: session time: 0:00:00.017 user=postgres database=dbtrsy host=X.X.X.X port=55696

任何线索为什么我在正确授权后自动断开连接?当我尝试使用不同的密码/用户名登录时,它会抛出“密码验证失败”错误,这是正确的。

任何想法?谢谢!

4

1 回答 1

0

如果我猜的话,我会猜想是什么原因导致 pg_hba.conf 被错误地读取,可能暴露了底层系统中的某种错误,或者可能存在另一个非错误问题。

对于此类问题,我的建议是将其放在 PostgreSQL 电子邮件列表中,并准备好显示您的整个配置。您也可以尝试注释掉 pg_hba.conf 中的行,直到发现问题为止。如果您的配置足够敏感,您可能希望在客户端上运行另一台具有相同配置但 IP 地址不同的服务器,以创建一个独立的测试用例。

于 2013-11-05T11:54:20.263 回答