注意:如下全部命令無特殊說明均在root下執行python
一、操做系統需安裝開發工具相關程序,如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
wget https://ftp.postgresql.org/pub/source/v13.1/postgresql-13.1.tar.bz2
一、解壓源碼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
# 1 添加用戶 useradd postgres # 2 設置密碼 passwd postgres # 3 建立相關目錄 mkdir -p /vdisk/app/postgresql/pgdata # 4 更改目錄宿主 chown -R postgres:postgres /vdisk/app/postgresql/pgdata
# 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
# 切換至 postgres 用戶 initdb
# 切換至 postgres 用戶 # 1 啓動數據庫 pg_ctl start # 2 中止數據庫 pg_ctl stop [-m SHUTDOWN-MODE] # -m 用於指定數據庫的中止方法,有如下3種模式: # smart : 等全部鏈接停止後,關閉數據庫。若是客戶端鏈接不終止,則沒法關閉數據庫。 # fast : 快速關閉數據庫,斷開客戶端的鏈接,記已有的事務回滾,而後正常關閉數據庫。 # immediate : 當即關閉數據庫,至關於數據庫進程當即中止,直接退出,下次啓動數據庫須要進行恢復。
# 切換至 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=#