公司項目用到了PostgreSQL數據庫,需要自己配,然後配出一點心得。
安裝數據庫就不用說了(我用的是8.2版本),有一點要注意的就是安裝的磁盤分區必須是NTFS格式的。裝好之後,選擇pgAdmin III啓動服務控制檯,裏面有一個Database Server,數據庫服務器,裏面有四個選項,數據庫,表空間,羣組角色,登入角色。數據庫需要自己建立,不過安裝的時候就初始化了一個數據庫,也可以繼續創建。羣組角色和表空間沒用到過。登入角色就是這個數據庫服務器的用戶名,在安裝的時候建立的。
如果有用戶連接到你這個服務器,就顯示在右邊的統計情報裏面。每連接一個用戶就開啓一個新的進程,在統計情報裏能看到進程的pid和客戶端的ip地址,端口號。 也可以在這裏新建一個連接,連接到自己的服務器也可以,連接到別的服務器也可以。點擊新增服務器,彈出對話框“新服務器登陸”。
名稱就是服務的名字,填寫postgres就ok。
主機就是需要連接的服務器ip地址。端口號默認5432,如果安裝的時候沒有改的話就不許要動。ssl是加密選項,一般不需要。
維護數據庫就是數據庫的名字。
用戶名稱填寫的是登入角色,也就是需要連接的服務器的postgres用戶。密碼就是密碼。
然後其他的都不需要改動,點擊確定,如果服務器配置的是正確的話,就能連接上了。
然後這裏就有個問題了,爲什麼上面說“如果服務器配置的是正確的話,就能連接上”呢?PostgreSQL有三個配置文件,在開始菜單的PostgreSQL目錄中的Configuration files下。postgresql.conf,pg_hba.conf和pg_ident.conf。前兩個有用,最後一個基本上用不到。
如果你的服務器只是自己用的話,默認配置就行了,而如果需要提供給局域網甚至是因特網上的用戶連接的話,就需要改動配置文件了。
1.給局域網用戶訪問:首先修改postgresql.conf,找到“# - Connection Settings -”這裏,帶#的是註釋部分,沒有帶的就是幹正事的。找到之後,把下面的listen_addresses = 'localhost'改爲listen_addresses = '*',然後保存。再打開pg_hba.conf,拉到最下面,找到“# IPv4 local connections:”這裏,下面的一行是“host all all 127.0.0.1/32 md5”,然後把這兩行復制,粘貼到下面,第二行改爲“host all all 192.168.0.0/0 md5”,然後保存。重新載入配置,或者關閉服務,重新啓動服務就行了。
2.給因特網用戶訪問:修改postgresql.conf跟上面的一樣,修改pg_hba.conf稍有不同,就是ip地址不一樣,上面的是改成192.168.0.0/0 ,這裏是改成0.0.0.0/0。然後重啓服務。
如果服務重新啓動之後還不行的話,就把任務管理器打開,把所有的postgres進程刪掉,然後再啓動服務,就好了。
ps:還有,防火牆也有可能阻止外部機器的訪問,我的windows防火牆都阻止局域網的機器訪問,關掉纔可以了。