在 Ubuntu 12.04 Server 安裝 PostgreSQL 9.2

目標是要搞一台獨立的 Linux server 跑 PostgreSQL,PostgreSQL 的 admin 也要由外面搞,即係 admin 要由第二部機嚟做。

1. 首先安裝 Ubuntu 12.04 Server

Postgres_01

1.1 我唔要 Automatic updates 以免麻煩

Postgres_02

1.2 選 predefined collections of software 就一個都唔要,日後有必要時再自己 install。

Postgres_03

2. 安裝完 Ubuntu 的第一次 login 就要:

2.1 更新 Ubuntu 至最新的版本

sudo su
apt-get update && apt-get upgrade

2.2 跟手就安裝 SSH 方便日後做 remote management:

apt-get install openssh-server
vi /etc/ssh/sshd_config

唔裝都得,隨自己喜好啦!用 vi 改 sshd_config 係主要改用非傳統嘅 ssh port,security 嘛!

3. 再嚟就係安裝 PostgreSQL:

3.1 目前 Ubuntu 的版本是 v9.1,我要最新的 v9.2,所以要自己安裝 ppa

add-get install python-spftware-properties
add-apt-repository ppa:pitti/postgresql
apt-get update
apt-get install postgresql-9.2

第一句係安裝 ppa 要用到的軟件,第二句是 ppa 的路徑,第三句是更新這台機的軟件庫資料,第四句是按照資料安裝 PostgreSQL v9.2

到此為止你的 PostgreSQL 已經可以用,不過他祇對本機的指令有效,我哋要用第二台機 admin 佢,所以要繼續第四個步驟。

4. 優化 PostgreSQL

4.1 接受來自於其他機的指令,修改 postgresql.conf 檔案

vi /etc/postgresql/8.3/main/postgresql.conf

Postgres_04

把其中的一句
#listen_addresses = ‘localhost’
改為
listen_addresses = ‘*’

4.2 修改 PostgreSQL 的基本資料檔 pg_hba.conf

vi /etc/postgresql/8.3/main/pg_hba.conf
local all postgres trust
host all all 192.168.1.0/24 md5

這是原本的 pg_hba.conf:

Postgres_05

我們要改成這樣:

Postgres_06

這裡面的 192.168.20.0/24 即是祇對 LAN 內聯網有效,詳細的 CIDR 資料可以參考這裡

4.3 修改 PostgreSQL 的初始用戶的密碼

/etc/init.d/postgresql restart

psql -U postgres -d template1
template1=# ALTER USER postgres with encrypted password ‘yourpassword’;

第一句是 restart 一下 postgres,請他採用最新的設定,第二句是啟動 psql,第三句是用 psql command 進行修改 user password。

Postgres_07

畫面上的 ‘q’ 是離開 psql 的指令。

5. 最後測試

我是在一台 Home Server 2011 上安裝了 pgAdmin III 來做測試的:

Postgres_08

接駁 PostgreSQL 的設定:

Postgres_08a

成功接駁後就可以通過 pgAdmin III 來控制這台 PostgreSQL 了:

Postgres_09