PostgreSQL編譯安裝
創(chuàng)新互聯(lián)擁有網(wǎng)站維護(hù)技術(shù)和項(xiàng)目管理團(tuán)隊(duì),建立的售前、實(shí)施和售后服務(wù)體系,為客戶提供定制化的網(wǎng)站設(shè)計(jì)制作、網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、成都西信服務(wù)器托管解決方案。為客戶網(wǎng)站安全和日常運(yùn)維提供整體管家式外包優(yōu)質(zhì)服務(wù)。我們的網(wǎng)站維護(hù)服務(wù)覆蓋集團(tuán)企業(yè)、上市公司、外企網(wǎng)站、商城網(wǎng)站定制開發(fā)、政府網(wǎng)站等各類型客戶群體,為全球上千企業(yè)提供全方位網(wǎng)站維護(hù)、服務(wù)器維護(hù)解決方案。一、PostgreSQL簡介
PostgreSQL是目前功能最強(qiáng)大的開源數(shù)據(jù)庫,支持豐富的數(shù)據(jù)類型和自定義類型,且它提供了豐富的接口,可以輕易的擴(kuò)展它的功能。
與其他數(shù)據(jù)庫相比,PostgreSQL有以下優(yōu)勢:
●PostgreSQL是目前功能最強(qiáng)大的開源數(shù)據(jù)庫
●穩(wěn)定可靠:PostgreSQL是唯一能做到數(shù)據(jù)零丟失的開源數(shù)據(jù)庫
●支持廣泛:PostgreSQL支持大量的主流開發(fā)語言,包括C、C++、Perl、Python、Java、PHP等
●社區(qū)活躍:基本上每三個(gè)月會(huì)推出一個(gè)新的補(bǔ)丁版本,這意味著已知BUG很快會(huì)被修復(fù)
PostgreSQL數(shù)據(jù)庫與MySQL數(shù)據(jù)庫對比,有以下優(yōu)勢:
●功能強(qiáng)大:支持所有主流的多表連接查詢的方式(如:Nest loop、hash join等);有豐富的內(nèi)置函數(shù),并支持大量字段類型
●支持同步復(fù)制:從PostgreSQL9.1開始,支持同步復(fù)制功能,,通過master和slave之間的復(fù)制可以實(shí)現(xiàn)零數(shù)據(jù)丟失的高可用方案
二、PostgreSQL安裝與配置
本次安裝采用源碼編譯安裝,僅作為學(xué)習(xí)工作使用,默認(rèn)選項(xiàng)即可,讀者可以自行選擇安裝的選項(xiàng)。
1、安裝前的準(zhǔn)備
●源碼包
postgresql-9.6.1.tar.gz,可通過如下命令下載
wget https://ftp.postgresql.org/pub/source/v9.6.1/postgresql-9.6.1.tar.gz●創(chuàng)建postgres用戶
PostgreSQL不能以root身份運(yùn)行,而且其默認(rèn)運(yùn)行用戶為postgres
[root@a ~]# useradd postgres [root@a ~]# passwd postgres●創(chuàng)建安裝目錄及數(shù)據(jù)目錄
[root@a ~]# mkdir -p /usr/local/pgsql/data2、開始安裝配置
●解壓并進(jìn)行安裝
解壓源碼包,并進(jìn)入解壓目錄,執(zhí)行配置安裝命令
[root@a ~]# tar -xzf postgresql-9.6.1.tar.gz [root@a ~]# cd postgresql-9.6.1 [root@a postgresql-9.6.1]# ./configure --prefix=/usr/local/pgsql [root@a postgresql-9.6.1]# make && make install如果沒什么error的話,我們就可以進(jìn)行配置
●相關(guān)配置
1)添加環(huán)境變量
方便起見,我們在/etc/init.d/目錄下新建一個(gè)名為pgsql.sh的文件,內(nèi)容如下,并使該文件立即生效
[root@a ~]# more /etc/profile.d/pgsql.sh export PATH=$PATH:/usr/local/pgsql/bin [root@a ~]# source /etc/profile.d/pgsql.sh2)將數(shù)據(jù)目錄及安裝目錄屬主、屬組改為postgres
[root@a ~]# chown ‐R postgres.postgres /usr/local/pgsql3)初始化數(shù)據(jù)庫
切換為postgres用戶,初始化postgresql數(shù)據(jù)庫,此時(shí)會(huì)在/usr/local/pgsql/data目錄下生成相應(yīng)的數(shù)據(jù)庫配置文件
[root@a ~]# su ‐ postgres [postgres@a ~]$ initdb ‐D /usr/local/pgsql/data # 需要注意的是:這里的/usr/local/pgsql/data目錄必須為空 # 現(xiàn)在可以執(zhí)行如下命令啟動(dòng)postgresql數(shù)據(jù)庫服務(wù) [postgres@a ~]$ pg_ctl ‐D /usr/local/pgsql/data ‐l logfile start4)修改配置文件
現(xiàn)在我們的數(shù)據(jù)庫只能用于本地用戶訪問,我們需要修改配置文件來使遠(yuǎn)程機(jī)器也可以訪問
[postgres@a ~]$ cd /usr/local/pgsql/data [postgres@a data]$ vi postgresql.conf # 在#listen_addresses = 'localhost'處添加監(jiān)聽地址為所有(*),即添加listen_addresses = '*' [postgres@a data]$ vi pg_hba.conf # 將host的IP地址改為所需要訪問的IP網(wǎng)段地址,認(rèn)證方式改為md修改后截圖如下:
5)復(fù)制服務(wù)啟動(dòng)腳本到/etc/init.d/目錄下,添加pgsqld服務(wù)
切換為root用戶,復(fù)制解壓目錄下contrib/startscripts/linux到/etc/init.d/pgsqld,并進(jìn)行簡單修改,賦予執(zhí)行權(quán)限
[root@a postgresql-9.6.1]# cp contrib/start‐scripts/linux /etc/init.d/pgsqld [root@a postgresql-9.6.1]# vi /etc/init.d/pgsqld ## 查看該選項(xiàng)是否與自己設(shè)定的數(shù)據(jù)目錄相對應(yīng),若不對應(yīng),則修改 ## 該選項(xiàng)默認(rèn)目錄為 PGDATA="/usr/local/pgsql/data" # 添加執(zhí)行權(quán)限,并添加服務(wù)到開機(jī)啟動(dòng) # chmod +x /etc/init.d/pgsqld 重新啟動(dòng)服務(wù) # service pgsqld restart # 添加到開機(jī)啟動(dòng) # chkconfig --add pgsqld # chkconfig pgsqld on到此,PostgreSQL安裝配置完成,我們可以切換到postgres用戶,執(zhí)行psql命令進(jìn)入postgres交互模式,進(jìn)行相關(guān)數(shù)據(jù)庫操作。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。