【PG資料庫】PG資料庫的安裝及連線方法

linxueguo發表於2022-05-19
  • 【PG資料庫】PG資料庫的安裝及連線方法

    一. PostgreSQL 簡介

    PostgrepSQL 是一種物件關係型資料庫管理系統。

    二. PostgreSQL 環境的安裝和配置

    2.1 原始碼的下載

    PostgreSQL 14.0 原始碼可以從 PostgreSQL 官網:

    原始碼目錄內容,如下圖所示:

     

    2.2  環境配置

    安裝之前首先為系統配置環境,這個過程通過執行上圖中的 configure 指令碼檔案即可 , 命令如下:

    ./configure

    注意:安裝的時候,遇到兩個問題,新環境高頻出現,可以通過最後一章中的方法進行解決。

    2.3  編譯

    配置好環境變數之後,對原始碼進行編譯。 2.1 圖中,可以看到已經有完整的 makefile 檔案,在目錄下執行下面的命令,進行編譯:

    make clean all

    編譯過程大約持續 5~30min

    2.4  迴歸測試

    如果想在安裝檔案前測試新編譯的伺服器,那麼可以在這個時候執行迴歸測試。迴歸測試是一個用於驗證 PostgreSQL 在你的系統上是否按照開發人員設想的那樣執行的測試套件。通過下面命令執行:

    make check

    如果執行結果如下,代表檢查通過:

     

    注意:這個命令只能在非特權使用者下執行,不能在 root 許可權下執行

    2.5  安裝、解除安裝、清理檔案

    1 )安裝

    安裝 PostgreSQL ,需要輸入下面的命令:

    sudo make install

    由於 install 命令需要在 root 許可權下執行,所以需要按上面的命令執行。

    2 )解除安裝

    如果想要解除安裝安裝,則執行下面的命令即可,需要注意此命令不會刪除任何建立出來的目錄:

    sudo make uninstall

    (3)清理

    編譯之前可以通過 make clean 命令,將之前的編譯檔案進行刪除,避免對後續的編譯產生影響。

    2.6  安裝後進行設定

    2.6.1  建立使用者

    root 使用者不能啟動 postgresql ,所以需要建立一個普通使用者來啟動資料庫,如下圖所以,建立使用者並設定登入口令。注意:下面兩條命令均需在 root 許可權下執行。

    命令 1 $sudo useradd postgres

    沒有其他輸出,代表成功。

    命令 2 $sudo passwd postgres

    輸入類似於這樣的密碼,可以成功 ht3pki2008!!

    如下圖所示:

     

    2.6.2  設定許可權

    postgresql 目錄下建立目錄 data (資料庫儲存)和 log (日誌儲存),然後將 postgresql 的目錄許可權全部賦予給 postgres 使用者。

    命令 1 $sudo mkdir /usr/local/pgsql/data

    命令 2 $sudo mkdir /usr/local/pgsql/log

    命令 3 $sudo chown -R postgres:postgres /usr/local/pgsql

    2.6.3  共享庫

    在一些有共享庫的系統裡,需要告知本地系統如何找到新安裝的共享庫。設定共享庫的搜尋路徑的方法因平臺而異,本機是 Linux 系統,因設定命令需要 root 許可權,故在安裝之後執行下面命令進行設定:

    sudo /sbin/ldconfig /usr/local/pgsql/lib

    設定後,可以在執行時,讓連結器更快地找到共享庫。

    2.6.4  環境變數

    1.  PG 新增到環境變數

    本機 PG 安裝路徑為 /usr/local/pgsql ,安裝到此目錄或者其他預設不在搜尋路徑中的地方,應該在本地的 PATH 環境變數裡面增加一個 /usr/local/pgsql/bin

    上面的操作非必須,但可以在使用 PG 更方便。

    將下面的幾行加到 shell 啟動檔案即可,如: ~./bash_profile ()如果想影響所有使用者就放在 /etc/profile ):

    export PGDATA=/usr/local/pgsql/data

    export PGHOME=/usr/local/pgsql

    export PATH=$PGHOME/bin:$PATH

    注意: /etc/profile 檔案需要 root 許可權操作,所以在修改的時候可以使用 sudo vim /etc/profile ,開啟檔案修改。

    2.  man 文件新增到環境變數

    為了讓系統找到 man 文件,將下面的內容新增到 shell 啟動檔案裡:

    MANPATH=/usr/local/pgsql/share/man:$MANPATH

    export MANPATH

    修改完成後,使用下面的命令使其生效:

    命令 1 sudo -s (切換到 root 許可權)

      命令 2 source /etc/profile

    2.6.5  初始化資料庫

    切換為 postgres 使用者,使用 initdb --help 可以看到初始化資料庫的幫助資訊,如下圖所示:

    命令 1 $initdb --help

     

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

    首先,切換到 postgres 使用者,命令: #su - postgres

    然後,初始化資料庫,命令: $initdb

    如果出現下面的結果,代表初始化成功:

    此時,可以發現 /usr/local/pgsql/data 中已經有檔案了,代表已經初始化成功。

    2.6.6  配置資料庫

    首先,進入 /usr/local/pgsql/data 目錄,使用命令 vim pg_hba.conf, 配置對資料庫的訪問控制(設定為可以通過密碼訪問)。如下圖所示:

     

    然後,使用命令 vim postgresql.conf, 配置資料庫引數(設定伺服器監聽整個網路,設定埠號為 5432 )。如下圖所示:

     

    2.6.7  關閉防火牆( root 使用者)

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

     

    通過上圖可知,防火牆屬於關閉狀態。

    如果檢視到防火牆處於開啟狀態,如下圖:

     

    若想將其關閉,使用命令 sudo systemctl stop firewalld.service 關閉防火牆。( ps :使用命令 systemctl disable firewalld.service, 可以停用防火牆開機自啟)

    2.6.8  配置系統服務( root 使用者)

    進入 postgresql 原始碼包的解壓目錄(本文為 /home/10318001@zte.intra/Desktop/ 王澤輝的工作空間 /postgreSQL 原始碼 /postgresql-14.0 ),執行命令

    cp contrib/start-scripts/linux /etc/init.d/postgresql

    然後執行 vim /etc/init.d/postgresql ,檢視配置資訊是否如下圖所示,若不同,請按下面的方式配置:

     

    然後使用命令 chmod +x /etc/init.d/postgresql (需在 root 許可權下執行),賦予該檔案執行許可權。另外,還可以使用命令 chkconfig --add postgresql (需在 root 許可權下執行),設定服務開機自啟。

    2.6.9  啟動及連結資料庫

    1.  啟動資料庫服務

    使用命令 #service postgresql start (需要 root 許可權) , 啟動資料庫服務。可以通過命令: $sudo ps -ef | grep postgres ,檢視 postgres 相關程式,如下圖所示:

     

     

    3. 連結資料庫

    通過上述方法啟動資料庫後,便可通過 postgresql 自帶的客戶端工具 psql 來進行連結( psql 二進位制檔案在 /usr/local/pgsql/bin, 因為已經配置環境變數,所以全域性也可執行)。

    請按如下的步驟進行操作:

    (1) 在 postgresql 使用者下直接輸入命令 :$psql ,看到版本資訊則說明連結成功。

    (2) 然後,使用” \password, 設定密碼。如下圖所示:

     

    (3) 驗證非本地客戶端工具的連結。

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

     

    (4) 停止資料庫連線服務

    若想停止資料庫服務,可以在 root 許可權下執行命令 :#service postgresql stop

    總結:以上就是 linux 環境下原始碼編譯安裝 PostgreSQL 的全過程。

    十. 錯誤及解決辦法

    10.1  安裝 PG 時,執行 configure 指令碼報錯

    問題一:

    1.  安裝前,執行 configure 配置檔案時,報下面錯誤

    configure: error: readline library not found
    If you have readline already installed, see config.log for details on the
    failure.  It is possible the compiler isnt looking in the proper directory.
    Use --without-readline to disable readline support.

    2. 解決辦法

    (1)根據提示是沒有安裝 readline 包,首先檢查是否安裝 readline

     

    由上可知,系統中已經安裝了 readline 包。

    (2)通過 yum 查詢 readline 包,觀察都有哪些相關的包

    由上可知, readline-devel.i686 readline-devel43.i386 可能未安裝,嘗試安裝 readline-devel 包。

    3 )嘗試安裝 readline-devel

    注意,執行這個安裝命令,需要在 root 許可權下安裝,用下面命令即可。

     

    顯示“完畢”之後,即代表安裝完成。

    (3)再次執行 configure 指令碼,即可通過。

    問題二:

    1. 安裝前執行 configure 指令碼,報下面的錯誤

    checking for inflate in -lz... no

    configure: error: zlib library not found

    If you have zlib already installed, see config.log for details on the

    failure.  It is possible the compiler isn't looking in the proper directory.

    Use --without-zlib to disable zlib support.

    2. 解決辦法

    (1)首先檢查系統中是否安裝 zlib

     

    (2)通過 yum 檢視 zlib 包,檢視哪些包缺失

     

    通過上述檢視可知, zlib-devel 需要安裝。

    (3)安裝 zlib-devel

    由於安裝需要 root 許可權,採用下面的命令安裝即可,如下圖:

     

    4 )繼續執行 configure 指令碼,執行成功,問題得到解決。

  • 轉自:ht tp://t.zoukan kan.c om/coreLeo-p-15633054.ht ml


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31374736/viewspace-2895338/,如需轉載,請註明出處,否則將追究法律責任。

相關文章