它提供了多版本並行控制,支援幾乎所有 SQL 構件(包括子查詢,事務和使用者定義型別和函數), 並且可以獲得非常廣闊範圍的(開發)語言綁定 (包括 C,C++,Java,perl,tcl,和 python)。本文介紹的是其在windows系統下的安裝過程。
一般說來,一個現代的與 Unix 相容的平台應該就能運行 PostgreSQL。而如果在windows系統下安裝,你需要 Cygwin 和cygipc 包。另外,如果要製作伺服器端程式設計語言 PL/Perl,則還需要完整的Perl安裝,包括 libperl 庫和標頭檔。
在磁碟支援方面,需要65MB左右用於存放安裝過程中的源碼和大約15 MB的空間用於存放安裝目錄;一個空資料庫大概需要25MB;然後在使用過程中大概需要在一個平面文字檔裡存放同等資料量資料五倍的空間儲存資料,如果你要運行迴歸測試,還臨時需要額外的90MB空間。
第一步:從網上下載基於windows的Cygwin安裝程式,雙擊開啟。
第二步:選擇安裝類型。由於我們已將安裝程式下載到了本地硬碟,故選擇第三項,然後單擊“下一步”。
第三步:選擇安裝路徑。一般按其預設即可。
第四步:選擇下載檔案包在本機存放路徑。請根據實際選擇。
接著會提示選擇連線類型、下載網站、選擇安裝包(需要確定加上:cygrunsrv (category Admin) 、postgresql (category Database)),之後便開始下載包並安裝cygwin了。
第一步:將cygserver 安裝成NT服務並啟動
a.運行指令碼:$ /usr/bin/cygserver-config
b.在win2003中設定環境變數:CYGWIN=server
c.重啟win2003
第二步:在win2003的DOS狀態下,按所示建立使用者帳戶及密碼
第三步:在系統所在分區建立一檔案夾
例如:D:\cygwin\home\postgres
第四步:更新檔案: /etc/passwd
使用命令:mkpasswd -l -u postgres >> /etc/passwd
解釋: 向/etc/passwd檔案中加入使用者postgres的資訊
第五步:建立存放資料的目錄並設定postgres為該目錄的所有者
mkdir /usr/share/postgresql/data
chown postgres /usr/share/postgresql
chown postgres /usr/share/postgresql/data
第六步:配置使用者權限
在運行框內輸入“secpol.msc”開啟“本地安全設定”視窗,依次點擊“本地策略”-“使用者權限分配”,在右邊視窗裡找到“作為服務登入”,雙擊開啟。
在出現的視窗裡單擊“添加使用者或組”添加一個名為“postgres”的使用者。
第七步:初始化資料區域
登出原來的使用者,改用postgres進入win2003後運行如下命令:
initdb –d /var/postgresql/data
注意:PostgreSQL安裝程式只能在NTFS分區中完成資料庫的初始化工作,而PostgreSQL伺服器程式自身和一些工具程式可以安裝在任何分區中。如果為FAT分區格式,可以正常安裝PostgreSQL,但不要進行資料庫的初始化工作,只能待在安裝完成後,在FAT分區上手動執行initdb.exe程式來進行,但安全性和可靠性就不能保證了,要想建立資料表空間也會失敗。
第八步:將postmaster(PostgreSQL的伺服器)安裝成NT服務並啟動
使用命令: cygrunsrv –I postmaster –p /usr/bin/postmaster –a “-d
/usr/share/postgresql/data –I” –y cygserver –s int –u postgres -o
命令解釋:
-I postmaster:建立一個名為postmaster的服務。
-p /usr/bin/postmaster:應用程式路徑為/usr/bin/postmaster。
-a"-D /usr/share/postgresql/data -i":
postmaster 將目錄 /usr/share/postgresql/data 做為資料目錄,必須設定“-i”(TCP/IP 串連) 和“-D”參數。
-y cygserver:指明postmaster依賴於cygserver
-s int:發送訊號 INT when terminated is run by the user (-u) postgres
-o :在系統退出時停止服務
註:更詳細的參數說明可以使用命令:“cygrunsrv -h”以及“postmaster –help”
之後Cygrunsrv 將會讓你輸入兩次密碼。
OK,經過以上配置後,即可使用命令“psql –u postgres template1”登入postgresql資料庫了。
註:“template1”是Postgresql在初始化時自動建立的測試資料庫。