標籤:linux postgresql
PostgreSQL編譯安裝
一、PostgreSQL簡介
PostgreSQL是目前功能最強大的開來源資料庫,支援豐富的資料類型和自訂類型,且它提供了豐富的介面,可以輕易的擴充它的功能。
與其他資料庫相比,PostgreSQL有以下優勢:
●PostgreSQL是目前功能最強大的開來源資料庫
●穩定可靠:PostgreSQL是唯一能做到資料零丟失的開來源資料庫
●支援廣泛:PostgreSQL支援大量的主流開發語言,包括C、C++、Perl、Python、Java、PHP等
●社區活躍:基本上每三個月會推出一個新的補丁版本,這意味著已知BUG很快會被修複
PostgreSQL資料庫與MySQL資料庫對比,有以下優勢:
●功能強大:支援所有主流的多表串連查詢的方式(如:Nest loop、hash join等);有豐富的內建函數,並支援大量欄位類型
●支援同步複製:從PostgreSQL9.1開始,支援同步複製功能,,通過master和slave之間的複製可以實現零資料丟失的高可用方案
二、PostgreSQL安裝與配置
本次安裝採用源碼編譯安裝,僅作為學習工作使用,預設選項即可,讀者可以自行選擇安裝的選項。
1、安裝前的準備
●源碼包
postgresql-9.6.1.tar.gz,可通過如下命令下載
wget https://ftp.postgresql.org/pub/source/v9.6.1/postgresql-9.6.1.tar.gz
●建立postgres使用者
PostgreSQL不能以root身份運行,而且其預設運行使用者為postgres
[[email protected] ~]# useradd postgres[[email protected] ~]# passwd postgres
●建立安裝目錄及資料目錄
[[email protected] ~]# mkdir -p /usr/local/pgsql/data
2、開始安裝配置
●解壓並進行安裝
解壓源碼包,並進入解壓目錄,執行配置安裝命令
[[email protected] ~]# tar -xzf postgresql-9.6.1.tar.gz[[email protected] ~]# cd postgresql-9.6.1[[email protected] postgresql-9.6.1]# ./configure --prefix=/usr/local/pgsql[[email protected] postgresql-9.6.1]# make && make install
如果沒什麼error的話,我們就可以進行配置
●相關配置
1)添加環境變數
方便起見,我們在/etc/init.d/目錄下建立一個名為pgsql.sh的檔案,內容如下,並使該檔案立即生效
[[email protected] ~]# more /etc/profile.d/pgsql.shexport PATH=$PATH:/usr/local/pgsql/bin[[email protected] ~]# source /etc/profile.d/pgsql.sh
2)將資料目錄及安裝目錄屬主、屬組改為postgres
[[email protected] ~]# chown ‐R postgres.postgres /usr/local/pgsql
3)初始化資料庫
切換為postgres使用者,初始化postgresql資料庫,此時會在/usr/local/pgsql/data目錄下產生相應的資料庫設定檔
[[email protected] ~]# su ‐ postgres[[email protected] ~]$ initdb ‐D /usr/local/pgsql/data# 需要注意的是:這裡的/usr/local/pgsql/data目錄必須為空白# 現在可以執行如下命令啟動postgresql資料庫服務[[email protected] ~]$ pg_ctl ‐D /usr/local/pgsql/data ‐l logfile start
4)修改設定檔
現在我們的資料庫只能用於本機使用者訪問,我們需要修改設定檔來使遠程機器也可以訪問
[[email protected] ~]$ cd /usr/local/pgsql/data[[email protected] data]$ vi postgresql.conf# 在#listen_addresses = ‘localhost‘處添加監聽地址為所有(*),即添加listen_addresses = ‘*‘[[email protected] data]$ vi pg_hba.conf# 將host的IP地址改為所需要訪問的IP網段地址,認證方式改為md
修改後如下:
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M00/8C/80/wKiom1huFO6yu5o9AABorp_60Z8223.png" style="width:654px;height:102px;" title="postgresql.conf" alt="wKiom1huFO6yu5o9AABorp_60Z8223.png" width="654" height="102" border="0" hspace="0" vspace="0" />
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/8C/80/wKiom1huF5SA356nAADFcYs1WUs075.png" title="pg_hba.conf" width="750" height="134" border="0" hspace="0" vspace="0" style="width:750px;height:134px;" alt="wKiom1huF5SA356nAADFcYs1WUs075.png" />
5)複製服務啟動指令碼到/etc/init.d/目錄下,添加pgsqld服務
切換為root使用者,複製解壓目錄下contrib/startscripts/linux到/etc/init.d/pgsqld,並進行簡單修改,賦予執行許可權
[[email protected] postgresql-9.6.1]# cp contrib/start‐scripts/linux /etc/init.d/pgsqld[[email protected] postgresql-9.6.1]# vi /etc/init.d/pgsqld## 查看該選項是否與自己設定的資料目錄相對應,若不對應,則修改## 該選項預設目錄為PGDATA="/usr/local/pgsql/data"# 添加執行許可權,並添加服務到開機啟動# chmod +x /etc/init.d/pgsqld重新啟動服務# service pgsqld restart# 添加到開機啟動# chkconfig --add pgsqld# chkconfig pgsqld on
到此,PostgreSQL安裝配置完成,我們可以切換到postgres使用者,執行psql命令進入postgres互動模式,進行相關資料庫操作。
本文出自 “紙盒人” 部落格,請務必保留此出處http://zhiheren.blog.51cto.com/12120978/1889419
PostgreSQL編譯安裝