1

我有一個奇怪的問題。我有一個使用PostgreSQL 8.3的服務。在並行平臺上,我安裝了PostgreSQL 9.1並嘗試使用我的工作php腳本連接到它。得到的回答:「沒有pg_hba.conf主機條目」但「LOG:連接授權」

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 

我可以輕鬆連接使用pgAdmin的從Y.Y.Y.Y.到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 

任何線索,爲什麼我得到了被正確授權後自動斷開?當我嘗試使用不同的密碼/用戶名登錄時,它會拋出「密碼驗證失敗」錯誤whis是正確的。

有什麼想法?謝謝!

+1

只是猜測:不兼容的客戶端庫? – Marek

+0

嗯...可能是,但我不真的相信它,因爲我使用標準的PHP庫。來自phpinfo的信息: PostgreSQL(libpq)版本\t 9.1.9 PostgreSQL(libpq)\t x86_64-redhat-linux-gnu上的PostgreSQL 9.1.9,由gcc(GCC)編譯4.7.2 20120921(Red Hat 4.7.2 -2),64位 – user1414355

回答

0

如果我猜測,我會猜測是什麼導致pg_hba.conf被錯誤地讀取,可能暴露了底層系統中的某種錯誤,或者可能是另一個非bug問題。

我對這種問題的建議是在PostgreSQL電子郵件列表中進行處理,並準備好顯示整個配置。您也可以嘗試在pg_hba.conf中註釋行,直到找到問題。如果您的配置足夠敏感,則可能需要運行具有相同配置的另一臺服務器,但客戶端上具有不同的IP地址,以創建自包含的測試用例。

相關問題