CentOS 8 源碼編譯安裝PostgreSQL(13.1)

CentOS 8 源碼編譯安裝PostgreSQL(13.1)

注意:如下全部命令無特殊說明均在root下執行python

1、安裝前準備

一、操做系統需安裝開發工具相關程序,如GCC,Make等,本例採用組安裝包的方式進行安裝: "Development Tools" 或 "開發工具"sql

dnf -y groupinstall "Development Tools"

二、在默認狀況下通常要使用數據庫中的壓縮功能,而這一功能的實現須要第三方的zlib壓縮開發包支持,因此須要安裝 zlib-devel 包;爲了方便地在psql中使用上下方向鍵把歷史命令找出來,按照PostgreSQL官方手冊的說明,須要安裝readline-devel包。數據庫

dnf -y install zlib-devel readline-devel perl-devel perl-ExtUtils-Embed python3-devel

2、下載源碼

wget https://ftp.postgresql.org/pub/source/v13.1/postgresql-13.1.tar.bz2

3、編譯及安裝

一、解壓源碼bash

tar -jxvf postgresql-13.1.tar.bz2

二、進入源碼目錄app

cd postgresql-13.1

三、建立PostgreSQL安裝目錄函數

mkdir -p /vdisk/app/postgresql/pgsql/v13.1

四、運行configure工具

./configure --prefix=/vdisk/app/postgresql/pgsql/v13.1 --with-perl --with-python

參數說明:
(1)--prefix 指定數據庫程序安裝位置。
(2)--with-perl 加上該選項才能使用Perl語法的PL/Perl過程語言來編寫自定義函數。
(3)--with-python 加上該選項才能使用Python語法的PL/Python過程語言來編寫自定義函數。
五、編譯post

make

六、安裝開發工具

make install

七、安裝經常使用工具測試

cd contrib
make
make install

七、爲方便後續數據庫管理程序版本升級,創建默認數據庫管理程序連接,之後有新的版本發佈,經過源碼編譯安裝後,修改這個軟連接的實際指向便可完成升級,其餘配置不須要作修改。

ln -sf /vdisk/app/postgresql/pgsql/v13.1 /vdisk/app/postgresql/pgsql/default

4、添加用戶(postgres)

# 1 添加用戶
useradd postgres
# 2 設置密碼
passwd postgres
# 3 建立相關目錄
mkdir -p /vdisk/app/postgresql/pgdata
# 4 更改目錄宿主
chown -R postgres:postgres /vdisk/app/postgresql/pgdata

5、配置環境變量

# 1 切換至 postgres 用戶
su - postgres
# 2 配置 .bashrc 在末尾添加以下內容
export PGBASE=/vdisk/app/postgresql
export PGHOME=$PGBASE/pgsql/default
export PGDATA=$PGBASE/pgdata
export PATH=$PGHOME/bin:$PATH
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
export MANPATH=$PGHOME/share/man:$MANPATH
# 3 讓配置生效
source ~/.bashrc

6、初始化數據庫實例

# 切換至 postgres 用戶
initdb

7、數據庫實例的啓動及中止

# 切換至 postgres 用戶
# 1 啓動數據庫
pg_ctl start 
# 2 中止數據庫
pg_ctl stop [-m SHUTDOWN-MODE]
# -m 用於指定數據庫的中止方法,有如下3種模式:
# smart : 等全部鏈接停止後,關閉數據庫。若是客戶端鏈接不終止,則沒法關閉數據庫。
# fast : 快速關閉數據庫,斷開客戶端的鏈接,記已有的事務回滾,而後正常關閉數據庫。
# immediate : 當即關閉數據庫,至關於數據庫進程當即中止,直接退出,下次啓動數據庫須要進行恢復。

8、測試

# 切換至 postgres 用戶
# 1 使用 psql 命令行工具鏈接數據庫
psql
# 輸出以下:
psql (13.1)
Type "help" for help.

postgres=#

# 2 查看數據庫信息,命令行輸入 \l 回車
postgres=# \l
# 輸出以下:
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 |
 template0 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(3 rows)

postgres=#
相關文章
相關標籤/搜索