我有一个奇怪的问题。我有一个使用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
我可以使用Y.Y.Y.Y中的PgAdmin轻松连接到数据库。现在是奇怪的事情:我看日志,我可以看到:
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
任何线索,为什么我被正确授权后会自动断开连接?当我尝试使用不同的密码/用户名登录时,它会抛出“密码验证失败”错误,这是正确的。
有什么想法吗?谢谢!
答案 0 :(得分:0)
如果我猜测,我猜想有些东西导致pg_hba.conf被错误地读取,可能会暴露底层系统中的某种bug,或者可能还有其他非bug问题。
我对此类问题的建议是在PostgreSQL电子邮件列表中进行处理,并准备好显示您的整个配置。您也可以尝试在pg_hba.conf中注释掉行,直到找到问题为止。如果您的配置足够敏感,您可能希望运行具有相同配置但客户端上的IP地址不同的另一台服务器,以创建一个独立的测试用例。