標籤:
一、簡介
PostgreSQL 是一種非常複雜的對象-關係型資料庫管理系統(ORDBMS),也是目前功能最強大,特性最豐富和最複雜的自由軟體資料庫系統。有些特性甚至連商務資料庫都不具備。這個起源於伯克利(BSD)的資料庫研究計劃目前已經衍產生一項國際開發項目,並且有非常廣泛的使用者。
二、系統內容
系統平台:CentOS release 6.3 (Final)
PostgreSQL 版本:PostgreSQL 9.2.4
防火牆已關閉/iptables: Firewall is not running.
SELINUX=disabled
三、安裝方式
A. RPM包安裝
B. yum 安裝
C. 源碼包安裝
四、安裝過程
A. RPM包安裝
1. 檢查PostgreSQL 是否已經安裝
# rpm -qa|grep postgres
若已經安裝,則使用rpm -e 命令卸載。
2. 下載RPM包
#wget http://yum.postgresql.org/9.2/redhat/rhel-6-i386/postgresql92-server-9.2.4-1PGDG.rhel6.i686.rpm
#wget http://yum.postgresql.org/9.2/redhat/rhel-6-i386/postgresql92-contrib-9.2.4-1PGDG.rhel6.i686.rpm
#wget http://yum.postgresql.org/9.2/redhat/rhel-6-i386/postgresql92-libs-9.2.4-1PGDG.rhel6.i686.rpm
#wget http://yum.postgresql.org/9.2/redhat/rhel-6-i386/postgresql92-9.2.4-1PGDG.rhel6.i686.rpm
3. 安裝PostgreSQL,注意安裝順序
# rpm -ivh postgresql92-libs-9.2.4-1PGDG.rhel6.i686.rpm
# rpm -ivh postgresql92-9.2.4-1PGDG.rhel6.i686.rpm
# rpm -ivh postgresql92-server-9.2.4-1PGDG.rhel6.i686.rpm
# rpm -ivh postgresql92-contrib-9.2.4-1PGDG.rhel6.i686.rpm
4. 初始化PostgreSQL 資料庫
PostgreSQL 服務初次啟動的時候會提示初始化。
初始化資料庫
# service postgresql-9.2 initdb
5. 啟動服務
# service postgresql-9.2 start
6. 把PostgreSQL 服務加入到啟動列表
# chkconfig postgresql-9.2 on
# chkconfig --list|grep postgres
7. 修改PostgreSQL 資料庫使用者postgres的密碼(注意不是linux系統帳號)
PostgreSQL 資料庫預設會建立一個postgres的資料庫使用者作為資料庫的管理員,預設密碼為空白,我們需要修改為指定的密碼,這裡設定為’postgres’。
# su - postgres
$ psql
# ALTER USER postgres WITH PASSWORD ‘postgres‘;# select * from pg_shadow ;
8. 測試資料庫
8.1 建立測試資料庫
# create database david;
8.2 切換到david 資料庫
# \c david
8.3 建立測試表
david=# create table test (id integer, name text);
8.4 插入測試資料
david=# insert into test values (1,‘david‘);INSERT 0 1david=#
8.5 選擇資料
david=# select * from test ; id | name ----+------- 1 | david(1 row)david=#
測試完成,RPM包安裝成功。
9. 修改linux 系統使用者postgres 的密碼
PostgreSQL 資料庫預設會建立一個linux 系統使用者postgres,通過passwd 命令設定系統使用者的密碼為post123。
# passwd postgres
10. 修改PostgresSQL 資料庫配置實現遠端存取
10.1 修改postgresql.conf 檔案
# vi /var/lib/pgsql/9.2/data/postgresql.conf
如果想讓PostgreSQL 監聽整個網路的話,將listen_addresses 前的#去掉,並將 listen_addresses = ‘localhost‘ 改成 listen_addresses = ‘*‘
10.2 修改用戶端認證設定檔pg_hba.conf
將需要遠端存取資料庫的IP地址或位址區段加入該檔案。
# vi /var/lib/pgsql/9.2/data/pg_hba.conf
11. 重啟服務以使設定生效
# service postgresql-9.2 restart
12. 遠程測試連接
串連成功。
B. yum 安裝
1. 將剛才安裝的PostgreSQL 卸載
//停止PostgreSQL服務
# /etc/init.d/postgresql-9.2 stop
//查看已安裝的包
# rpm -qa|grep postgres
//卸載
# rpm -e postgresql92-server-9.2.4-1PGDG.rhel6.i686
# rpm -e postgresql92-contrib-9.2.4-1PGDG.rhel6.i686
# rpm -e postgresql92-9.2.4-1PGDG.rhel6.i686
# rpm -e postgresql92-libs-9.2.4-1PGDG.rhel6.i686
2. yum 安裝
如果是預設yum 安裝的話,會安裝較低版本的PostgreSQL 8.4,這不符合我們的要求。
我們使用PostgreSQL Yum Repository 來安裝最新版本的PostgreSQL。
2.1 安裝PostgreSQL yum repository
# rpm -i http://yum.postgresql.org/9.2/redhat/rhel-6-x86_64/pgdg-redhat92-9.2-7.noarch.rpm
2.2 安裝新版本PostgreSQL
# yum install postgresql92-server postgresql92-contrib
2.3 查看安裝
3. 初始化並啟動資料庫
4. 測試
其他步驟如A方式。
C. 源碼包安裝
1. 下載PostgreSQL 源碼包
# wget http://ftp.postgresql.org/pub/source/v9.2.4/postgresql-9.2.4.tar.bz2
2. 解壓源碼包
# tar xjf postgresql-9.2.4.tar.bz2
3. 進入解壓後的目錄
# cd postgresql-9.2.4
4. 查看INSTALL 檔案
INSTALL 檔案中Short Version 部分解釋了如何安裝PostgreSQL 的命令,Requirements 部分描述了安裝PostgreSQL 所依賴的lib,比較長,先configure 試一下,如果出現error,那麼需要檢查是否滿足了Requirements 的要求。
5. 開始編譯安裝PostgreSQL 資料庫。
[[email protected] postgresql-9.2.4]# ./configure
configure 成功,無錯誤。
6. 執行gmake
[[email protected] postgresql-9.2.4]# gmake
gmake 成功,Ready to install.
7. 執行gmake install
[[email protected] postgresql-9.2.4]# gmake install
gmake install 成功,到這一步,PostgreSQL 源碼編譯安裝完成,下面開始配置PostgreSQL.
8. 設定環境變數
# vi .bash_profile
把 PATH=$PATH:$HOME/bin
改成 PATH=$PATH:$HOME/bin:/usr/local/pgsql/bin
儲存退出。
讓環境變數生效:
# source .bash_profile
9. 添加使用者postgres
# adduser postgres
* 更改使用者目錄(可選操作)
# vi /etc/passwd
把 postgres:x:528:528::/home/postgres:/bin/bash
改成 postgres:x:528:528::/usr/local/pgsql:/bin/bash
將.bash_profile 移動到新的使用者目錄並修改許可權
# cp /home/postgres/.bash_profile /usr/local/pgsql/
# chown postgres.postgres .bash_profile
刪除使用者目錄:
[[email protected] home]# rm -rf postgres/
10. 初始化資料庫
10.1 建立資料目錄
# mkdir /usr/local/pgsql/data
10.2 更改許可權
# chown postgres /usr/local/pgsql/data
10.3 切換到postgres 使用者
# su - postgres
10.4 init db
$ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data/
到這裡資料的初始化就完成了。
11. 系統服務
11.1 回到root 使用者
$ exit
11.2 複製安裝目錄下的linux檔案到/etc/init.d/
進入postgresql 的安裝目錄(即剛剛使用tar命令解壓的目錄)
# cd postgresql-9.2.4
# cp contrib/start-scripts/linux /etc/init.d/postgresql
11.3 添加執行許可權
# chmod +x /etc/init.d/postgresql
11.4 啟動資料庫
11.5 讓資料庫開機啟動
# chkconfig --add postgresql
# chkconfig postgresql on
11.6 建立資料庫操作的記錄檔案
12. 測試使用
# su - postgres
$ createdb test
$ psql test
test=# create table test(id int);
源碼編譯安裝成功。
CentOS 6.3下PostgreSQL 的安裝與配置