2014-03-12 127 views
3

我試圖從pgAdmin III連接到遠程數據庫。我創建了一個「新服務器註冊」。當我連接到數據庫時,我得到「訪問數據庫被拒絕」pgAdmin III:訪問數據庫被拒絕

enter image description here

我成立了所有正確。這是我的PostgreSQL設置:

  • 的pg_hba.conf>

PostgreSQL的客戶端身份驗證配置文件

# TYPE DATABASE  USER   ADDRESS     METHOD 

# "local" is for Unix domain socket connections only 
local all    postgres        trust 
local all    all          md5 
# IPv4 local connections: 
host all    all    127.0.0.1/32   md5 
# IPv6 local connections: 
host all    all    ::1/128     md5 
# Allow replication connections from localhost, by a user with the 
# replication privilege. 
host all    all    192.168.0.0/16   md5 
  • 的postgresql.conf>我允許所有進來的連接listen_addresses = '*'

使用SSH我可以連接到DATABSE:

[[email protected]]$ psql -h localhost -p 26888 -d postgres 
psql (9.1.11) 
Type "help" for help. 

postgres=# \l 
          List of databases 
    Name  | Owner | Encoding | Collate | Ctype | Access privileges 
--------------+---------+----------+---------+-------+--------------------- 
postgres  | fuiba | UTF8  | C  | C  | 
template0 | fuiba | UTF8  | C  | C  | =c/fuiba   + 
       |   |   |   |  | fuiba=CTc/fuiba 
template1 | fuiba | UTF8  | C  | C  | =c/fuiba   + 
       |   |   |   |  | fuiba=CTc/fuiba 
(3 rows) 

我在做什麼錯?任何幫助將不勝感激。謝謝!

ps:我在Linux CentOS上運行Windows 7和PostgreSQL上的pgAdmin III。

回答

6

的pgAdmin從另一臺主機連接到PostgreSQL時要通過SSH登錄到數據庫服務器比。錯誤消息中提到的IP地址(從93.39開始)在您的pg_hba.conf中未提及。

將運行pgAdmin的主機的公共IP地址(以93.39開頭的那個)添加到pg_hba.conf或通過SSH隧道連接。注意修改PostgreSQL的配置或在修改pg_hba.conf後重新啓動PostgreSQL。

+0

我試圖添加IP「93.39.12.345」,但不起作用。我重新啓動Postgres,我得到'psql:無法連接到服務器:連接被拒絕..'。可能我需要將我的IP更改爲「93.39.12.345/32」或「93.39.12.345/16」? –

+1

引用PostgreSQL的優秀文檔:「以這種方式指定的IP地址範圍的典型示例是:單個主機爲172.20.143.89/32,小型網絡爲172.20.143.0/24,大型網絡爲10.6.0.0/16 。 0.0.0.0/0表示所有IPv4地址,::/0表示所有IPv6地址。「。它對http://www.postgresql.org/docs/9.3/static/auth-pg-hba-conf.html –

+0

頁面末尾有一個詳盡的例子非常感謝你@Augustus –

1

我曾經爲此付出過努力,它通過更改pg_hba.conf中條目的IP掩碼來工作,但我不記得,除此之外,每個網絡的配置都不同。問題在於你最有可能在其中一個條目中出現錯誤。 Here,他們甚至指出錯誤消息是提示哪個條目is wrong。如果它們確實是正確的,我會檢查auth-method(例如,看看我的密碼是否作爲MD5散列傳遞)。

我希望這可以幫助你=)