一、簡介
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.2initdb
5. 啟動服務
# service postgresql-9.2start
6. 把PostgreSQL 服務加入到啟動列表
# chkconfig postgresql-9.2on
# 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 1
david=#
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 數據庫。
[root@TS-DEV postgresql-9.2.4]# ./configure
configure 成功,無錯誤。
6. 執行gmake
[root@TS-DEV postgresql-9.2.4]# gmake
gmake 成功,Ready to install.
7. 執行gmake install
[root@TS-DEV 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
刪除用戶目錄:
[root@TS-DEV 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);
源碼編譯安裝成功。
windows系統中安裝,請參考:PostgreSQL安裝步驟詳細圖解(windows)
新聞熱點
疑難解答
圖片精選