Linux下postgresql 安裝
1 添加使用者 建立目錄
useradd postgres -d /usr/local/pgsql
passwd postgres
mkdir /usr/local/pgsql/
mkdir /usr/local/pgsql/data
chown -R postgres /usr/local/pgsql
chown postgres /usr/local/pgsql/data
2 設定環境變數
vi /etc/profile
export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH
export PATH=/usr/local/pgsql/bin:$PATH
export PGDATA=/usr/local/pgsql/data
export MANPATH=$MANPATH:/usr/local/pgsql/man
3 安裝
./configure --prefix=/usr/local/pgsql ;make;make install
4 初始化資料庫
su postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
5 添加開機自啟動
chmod a+x /postgresql-8.1.9(postgresql解壓目錄)/contrib/start-scripts/linux
cp /tmp/postgresql-8.1.9/contrib/start-scripts/linux /etc/init.d/postgresql
chkconfig --add postgresql
6 換資料庫使用者postgres的密碼
psql template1
然後
ALTER USER postgres WITH PASSWORD 'password';
7 添加外部的訪問串連
在pg_hba.conf加上
host all all 0.0.0.0/0 trust
修改postgresql.conf
listen_addresses = '*'
啟動
/usr/local/pgsql/bin/postmaster -i -D /usr/local/pgsql/data &
or
/usr/local/pgsql/bin/pg_ctl -i -D /usr/local/pgsql/data -l logfile start
關閉 kill -INT `head -1 /usr/local/pgsql/data/postmaster.pid`
===============================================
是了,我來這裡就只能總結一下了,
Linux下,postgresql.conf pg_hba.conf 都是放在$PG_DATA目錄下,也就是一般的...../data目錄下
訪問的控制是修改pg_hba.conf檔案,如果加入的是下面行:
host all all 192.168.0.0 255.255.255.0 md5
這時,你從那個網段上訪問任何資料庫時,就要密碼,密碼在傳的過程中是加密碼的,
如果加下面一行:
host all all 192.168.0.0 255.255.255.0 password
這時,你從那個網段上訪問任何資料庫時,就要密碼,密碼在傳的過程中是沒加密碼的,
如果加下面一行:
host all all 192.168.0.0 255.255.255.0 trust
這時,你從那個網段上訪問任何資料庫時,就不要密碼,
修改postgresql.conf
中
把#tcpip_socket = false
改成tcpip_socket = true
這樣你在啟動時是否加有i 參數,用戶端都可連上你的資料庫!
一、實現遠端連線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