Linux CentOS7 離線安裝PostgreSQL 9.6.10(源碼編譯)

一、準備編譯環境

檢查服務器上是否存在gcc-c++的環境,使用命令:

rpm -qa | grep gcc-c++

如果沒有該環境,則需要安裝該環境,離線安裝步驟爲:

1、獲取相關rpm包,將其存放到服務器上某一路徑

這裏有兩種方式:

方式1:從centos7的系統安裝鏡像中提取:解壓鏡像文件,進入"Packages"目錄,取出如圖1所示rpm包

方式2:訪問鏡像網站獲取:http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/ ,然後將其上傳

                                                                                 圖1 

2、安裝rpm包。進入該路徑,使用命令:

rpm -Uvh *.rpm --nodeps --force

然後使用

  1. gcc -v
  2. g++ -v

查看gcc版本和g++版本,會看到詳細的版本信息,安裝完成。

二、下載postgresql源碼包

瀏覽器訪問 https://www.postgresql.org/ftp/source/,選擇對應版本,如圖2所示

                                                                                圖2

點擊之後,下載對應的tar.gz源碼包,然後將其上傳到服務器指定路徑。

三、解壓postgresql源碼包

輸入解壓命令,其中 "-C"後面的爲解壓縮後的路徑:

tar -zxvf postgresql-9.6.10.tar.gz -C /bigdata/soft

四、編譯安裝

進入解壓後目錄,通過命令 ./configure --help 可以看到配置相關的幫助信息,如圖3所示

                                                                          圖3

其中,--prefix=dir 可以指定安裝目錄:

./configure --prefix=/bigdata/work/postgresql

執行命令後,會進行配置過程,如果缺少相關包,則會導致配置失敗,如圖4所示

                                                                            圖4

通過命令 rpm -qa | grep readline 發現,服務器上是存在readline包的,如圖5所示

                                                                           圖5

出現這種情況一般是缺少相關 devel 包,即這裏缺少了 readline-devel 包。這裏仍採取步驟一講述的方法進行獲取以及安裝,如圖6所示(readline-devel依賴於ncurses-devel,注意先後次序)

                                                                          圖6

安裝完成後,回到postgresql源碼包的解壓目錄,再次執行之前的配置命令

  1. cd /bigdata/soft/postgresql-9.6.10
  2. ./configure --prefix=/bigdata/work/postgresql

可以看到提示創建了config.status配置文件,如圖7所示

                                                                          圖7

依次執行如下命令,進行編譯安裝(編譯時間視機器性能而定,請耐心等待)

  1. make
  2. make install

如果分別看到如圖8所示提示,則說明編譯安裝成功。

                                                                      圖8

五、相關配置

1、創建用戶

root用戶不能啓動postgresql,所以需要創建一個普通用戶來啓動數據庫,如圖9所示,創建用戶並設定登錄口令

                                                                       圖9

2、設定權限

在postgresql目錄下創建目錄 data(數據庫存儲)log(日誌存儲),然後將postgresql的目錄權限全部賦予給postgres用戶。

chown -R postgres:postgres /bigdata/work/postgresql

3、配置環境變量

使用命令 vim /etc/profile 配置環境變量,向其中追加如下內容:

  1. export PGDATA=/bigdata/work/postgresql/data
  2. export PGHOME=/bigdata/work/postgresql
  3. export PATH=$PGHOME/bin:$PATH

修改完成後,使用命令 source /etc/profile,使得配置生效。

4、初始化數據庫

切換爲 postgres 用戶,使用 initdb --help 可以看到初始化數據庫的幫助信息,如圖10所示

                                                                         圖10

如圖10紅框中文字所示,由於之前在配置文件中已經設定了環境變量 PGDATA ,因此可以直接使用命令 initdb 來完成數據庫初始化操作。

5、配置數據庫

進入 */postgresql/data 目錄,使用命令 vim pg_hba.conf ,配置對數據庫的訪問控制(設置爲可以通過密碼訪問)。如圖11所示

                                                                         圖11

然後,使用命令 vim postgresql.conf ,配置數據庫參數(設置服務器監聽整個網絡,設置端口號爲5432)。如圖12所示

                                                                         圖12

6、關閉防火牆(root用戶)

使用命令 systemctl status firewalld.service 查看防火牆狀態,如圖13所示

                                                                          圖13

可以看見服務器防火牆處於開啓狀態,使用命令 systemctl stop firewalld.service 關閉防火牆。(ps:使用命令 systemctl disable firewalld.service ,可以停用防火牆開機自啓)

7、配置系統服務(root用戶)

進入postgresql源碼包的解壓目錄(本文爲 /bigdata/soft/postgresql-9.6.10 ),執行命令 cp contrib/start-scripts/linux /etc/init.d/postgresql,然後 vim /etc/init.d/postgresql,進行配置修改,如圖14所示

                                                                                  圖14

然後使用命令 chmod +x /etc/init.d/postgresql,賦予該文件執行權限。另外,還可以使用命令 chkconfig --add postgresql,設置服務開機自啓。

8、啓動及連接數據庫

使用命令 service postgresql start,啓動數據庫服務。可以通過 ps -ef|grep postgres,查看postgres相關進程。如圖15所示。

                                                                                  圖15

啓動成功後,可以通過 postgresql 自帶的客戶端工具 psql 來進行連接,postgresql用戶直接輸入 psql 看到版本信息則說明連接成功。然後,使用 “\password”,設置密碼。如圖16所示

                                                                                  圖16

最後也是最重要的一步,就是驗證非本地客戶端工具的連接。本文選擇的工具是Navicat Premium,在主機(Windows7)打開Navicat與虛擬機中的postgresql服務器進行連接測試,如圖17所示

                                                                                   圖17 

可以發現連接成功。另外,可以使用命令service postgresql stop(非root用戶執行後需要輸入密碼,root用戶可以直接執行)停止數據庫服務。至此,關於源碼編譯安裝postgresql的全過程到此結束。

總結

 以上就是Linux離線環境下源碼編譯安裝PostgreSQL的全過程,希望本文可以對遇到同樣問題的朋友提供一些幫助。

發佈了4 篇原創文章 · 獲贊 2 · 訪問量 2000
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章