2010年1月16日 星期六

安裝PostgreSQL on Mac OSX

之前Sam使用過資料庫的經驗有Oracle、MSSQL,當然最常依然是MySQL。基於php全球使用人數眾多,而通常與MySQL直接綁在一起變成書籍、課程等,也讓MySQL的聲名大噪。不過最近由於論文要研究一些國外的典藏系統(DSpace),發現他們除了商用資料庫外,也有使用PostgreSQL(念法為post-gres-ql)。PostgreSQL首次發行日為1989,MySQL為1996,所以請不要因為沒聽過它的名號就認為它很新或不夠成熟...

一般業界近年來普遍認為MySQL較為快速與容易上手,PostgreSQL則是被定義為強大的、注重資料完整性、對於SQL描述嚴格,速度較慢也較難上手。如要了解開源碼資料庫最新相關規格(2009)比較請參考http://www.devx.com/dbzone/Article/29480
而就Sam實作的典藏系統來說,Transaction非常普遍的使用,並且由於資料表層級與正規化的關係,勢必要使用到View等來組合,雖然MySQL目前有支援視圖、預儲程序等,但似乎效能還擁有蠻大的問題,在查閱了http://wiki.postgresql.org/wiki/Why_PostgreSQL_Instead_of_MySQL_2009中的比較後,發現交易部份雖然MySQL能夠使用InnoDB來進行,但由於外部MySQL metadata資料表還是使用MyISAM,依然會容易損壞,並且InnoDB不支援全文檢索等;而PostgreSQL除了沒有上述問題外,交易鎖定也儘量以最小的範圍處理,不容易毀損,並且PostgreSQL由龐大的志願開發組維護開發,MySQL後續或許會被Oracle改變,因此決定採用PostgreSQL。
MySQL與PostgreSQL比較(2006):http://www.twbbs.net.tw/1286183.html
在Mac上安裝軟體其實很簡單,不用像Linux一樣還要compile,直接使用MacPorts就可以了,只要給它名稱,它會幫你找到資源,下載與安裝,非常方便,以下為安裝流程。
終端機中輸入:

sudo port install \
  postgresql83 \
  postgresql83-server
這段指令會請macport去安裝PostgreSQL的client與server端
安裝完畢後,輸入以下指令建立一個新的資料庫:

sudo mkdir -p /opt/local/var/db/postgresql83/defaultdb
sudo chown postgres:postgres /opt/local/var/db/postgresql83/defaultdb
sudo su postgres -c '/opt/local/lib/postgresql83/bin/initdb -D /opt/local/var/db/postgresql83/defaultdb'
然後設定開機自動啓動

sudo launchctl load -w /Library/LaunchDaemons/org.macports.postgresql83-server.plist
如果你還需要PostgreSQL視覺管理軟體的話,輸入以下指令安裝pgAdmin

sudo port install pgAdmin3
pgAdmin是自由軟體,所以可以放心使用。
如此一來就大功告成了!!

1 則留言:

  1. Hello,我們曾在Funp互換過連接,我的博客是: www.rank-ad.com/blog/

    現在我開了一個網上商店, 不如大家再互相交換連接好嗎?

    另外, 為展示網上社群優勢,不如大家也互加對方的Google朋友網,好吧?點擊一下就可以的啦。

    http://www.crystal-engrave.com/index.php?main_page=contact_us

    http://www.one-stop-digital.com/index.php?main_page=contact_us&zenid=4d2ad75f49d4eaf266e65760cd916056

    回覆刪除