1. 程式人生 > 資料庫 >PostgreSQL使用IP無法連線的解決方法

PostgreSQL使用IP無法連線的解決方法

PG資料庫ip地址無法連線,問題提示:SSL off

修改檔案“pg_hba.config

位於D:\Program Files\PostgreSQL\9.2\data路徑下

或者使用內建視覺化軟體>工具欄>伺服器配置>pg_hba.config

pg_hba.config配置

IP地址:閘道器/24

配置儲存,重新連線

下面是其他網友的補充:

眾所周知,Postgres 8.1 分別發行了 Linux和Windows 兩個版本,
所以,介紹遠端連線的主題時,也是分別介紹這兩個系統上是如何實現的。
其實,windows版比linux版的步驟少一些。

一、實現遠端連線Linux上的PostgreSQL伺服器。

主要分兩個步驟:

<1>要使Linux上的PostgreSQL開啟 “unix的tcpip套接子”。
編輯 $POSTGRES/data/postgresql.conf 檔案,
將tcpip_socket=off改成tcpip_socket=on即可。


<2>設定遠端訪問認證機制。
編輯 $POSTGRES/data/pg_hba.conf 檔案,
這個檔案上面一大堆都是介紹如何使用這個檔案使進行配置的,
最下面才是真正讓我們填寫東西的地方。
其中,有一行註釋:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
說明每一行有五個欄位,

分別是:連線型別、可使用的資料庫名、使用者、DIDR地址、和驗證方法等五項。
下面,我只介紹一些針對每個欄位常用的選項。

欄位一:TYPE。
可以選擇:local或host。
前者只能允許本地的使用者登陸Postgres資料庫;後者可以接受遠端客戶登陸。所以,
我們應該使用“host”。

欄位二:DATWABSE。
連線使用者可以使用的資料庫名字。可以使Postgres的一個具體的
資料庫名,也可以使用“all”來允許使用者訪問所有資料庫。

欄位三:USER。
可以指定某個具體的使用者來連線Postgres資料庫(還要結合後面的地址欄位),
也可以使用“all”來允許所有使用者連線資料庫。

欄位四:DIDR-ADDRESS。
這可能會讓您不知所措,不知道它為何物。
其實,它就是IP地址與掩碼的另一種表示方法而已。
Postgres是通過這個欄位來了解,允許那些IP或IP網段連線此伺服器。
它的格式是: IP地址/掩碼。
這個掩碼和子網掩碼是一個道理,只不過是用一個小於等於32的正數來表示,
表示的正是子網掩碼中高几位為1,
比如,255.255.255.0 就是“24”,說明高24位是1。
192.168.0.1/32 相當於 IP為192.168.0.1,子網掩碼為255.255.255.255的網段,
很顯然,這隻表明192.168.0.1IP自己。
如果您對IP地址與子網掩碼不太瞭解,請檢視相關資料。

欄位五:METHOD。
這是驗證方法。可選的有:
reject:拒絕這個IP的使用者訪問;
md5:密碼以md5作為hash編碼;
password:密碼作為明文傳輸(好恐怖!);
krb5:密碼以krb5作為hash編碼。

下面舉一個例子,來說明如何進行設定:
# TYPE DATABASE USER CIDR-ADDRESS METHOD

#允許IP為192.168.0.1的所有使用者登陸到Postgres伺服器的所有資料庫,採用md5驗證。
host all all 192.168.0.1/32 md5

#允許使用者testuser在192.168.0.XX的網段任意機器登陸Postgres伺服器,
#只能使用資料庫testdb,採用md5驗證。
host testdb testuser 192.168.0.1/24 md5

二、實現遠端連線Windows上的PostgreSQL伺服器。

前面都已經看懂後,這個配置就很簡單了,除了上面介紹的步驟<1>不用修改後,
只需要配置步驟<2>中介紹的東西即可。(因為winodws不會存在unix的tcpip套接子)。