我試圖通過JDBC驅動程序連接到Ubuntu 10.10中的PostgreSQL
8.4 DB。我通過jdbc:postgresql:localhost:5433/dbname
連接,因爲PostgreSQL在非默認端口5433上運行,所以我必須指定端口。通過JDBC在Postgresql 8.4上設置沒有密碼的用戶連接
我已經編輯了我的postgresql.conf
以設置listen_addresses = "*"
。我明白,即使它是本地主機,它仍然使用TCP/IP通過JDBC進行連接。
我的問題是我創建了一個沒有密碼的用戶。如果我沒有用DriverManager.connect(url)
指定密碼,則表明我需要指定密碼進行驗證。我嘗試的每個密碼(包括空字符串)都無法通過數據庫進行身份驗證。
如何連接?
編輯: 如果通過錯誤的端口連接,錯誤是:PSQLException:連接被拒絕。檢查主機名和端口是否正確,並且postmaster正在接受TCP/IP連接。當試圖連接正確的端口時,我得到PSQLException:致命:用戶「用戶」的密碼驗證失敗。這可以通過下面接受的答案來彌補。
顯示完整的,準確的錯誤信息和堆棧跟蹤。您的標題顯示「連接被拒絕」,但您的文本顯示「我需要指定密碼進行身份驗證的錯誤」。這些是完全不同的東西;在後一種情況下,成功完成TCP/IP連接,然後拒絕認證。從描述中可以看出,當連接到默認端口5432時,連接被拒絕,因爲Pg運行在端口5433上,但實際的*問題*與連接拒絕錯誤以及與身份驗證有關的一切無關。另外:PostgreSQL ** 8.8 **? 8.4? –
[Here](http://www.postgresql.org/support/versioning/)你可以找到實際存在的PostgreSQL版本,「8.8」不在其中。 –
克雷格,我的歉意,我在posgres 8.4。至於我的錯誤,是的,我根據端口收到不同的錯誤。看起來我確實是在5433.當我嘗試了不同的端口時,我得到了一個拒絕的連接,這意味着更多的是網絡問題(錯誤的端口)。我知道有時在SQLServer中,錯誤是非常通用的,並且認證錯誤並不一定意味着指定的數據庫存在,或者實際上可能是權限問題。 –