1. 程式人生 > 實用技巧 >Linux下安裝PostgreSQL

Linux下安裝PostgreSQL

什麼是PostgreSQL

PostgreSQL,有時候也會被叫做Postgres。他的的Slogan是“世界上最先進的開源關係型資料庫”。作為一種企業級資料庫,PostgreSQL以它所具有的各種高階功能而自豪,像多版本併發控制(MVCC)、按時間點恢復(PITR)、表空間、非同步複製、巢狀事務、線上熱備、複雜查詢的規劃和優化以及為容錯而進行的預寫日誌等。它支援國際字符集、多位元組編碼並支援使用當地語言進行排序、大小寫處理和格式化等操作。它也在所能管理的大資料量和所允許的大使用者量併發訪問時間具有完全的高伸縮性。目前已有很多PostgreSQL的系統在實際生產環境下管理著超過4TB的資料。

為什麼用PostgreSQL

開源、免費、易於二次開發。越來越多的開源軟體選擇PostgreSQL。比如本次的導火索就是sonarQube已放棄支援MySQL。
資料庫不適合使用docker。

與官方文件的修改處

對遠端連線、新增角色、新增資料庫增加了一些必要的選項,強制新增角色和資料庫時使用密碼訪問,約定utf-8編碼。
原文連線附上PostgreSQL-12

CentOS安裝PostgreSQL

# 下載RPM倉庫:
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# 安裝 PostgreSQL:
yum install -y postgresql12-server

# 刪除使用者postgres的密碼
sudo passwd -d postgres

# 設定使用者postgres的密碼
sudo -u postgres passwd

# 切換postgres使用者獲得許可權
su -u postgres 

# 初始化資料庫位置 http://postgres.cn/docs/11/app-initdb.html
/usr/pgsql-12/bin/initdb -D /usr/local/pgsql/data; 

# 開啟日誌
/usr/pgsql-12/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

配置遠端訪問

vi /usr/local/pgsql/data/pg_hba.conf
修改如下:
# IPv4 local connections:
host  all    all    127.0.0.1/32     trust
host  all    all    0.0.0.0/0        md5

vi /usr/local/pgsql/data/postgresql.conf
修改如下:
listen_addresses='localhost'修改為listen_addresses='*'

# 重啟服務
sudo systemctl restart postgresql-12

# 註冊開機自啟
sudo systemctl enable postgresql-12

配置系統設定

# 切換使用者獲取許可權
su - postgres 

# 建立登入的超級管理員使用者 http://postgres.cn/docs/12/database-roles.html
createuser rolename -d -l -P -r -s -W

# 從模版建立資料庫 http://postgres.cn/docs/12/manage-ag-createdb.html
createdb -O rolename -E UTF8 -W dbname

# 進入資料庫命令列
psql postgres

# 修改登入PostgreSQL密碼
ALTER USER postgres WITH PASSWORD 'postgres';

# 檢視指令
\?
\l  #檢視資料庫
\du #檢視使用者
\q  #退出

使用rolename和輸入的密碼即可登入PostgreSQL。

踩坑經驗

  1. 初始設定時未成功,修改/usr/local/pgsql/data內配置不生效
vi /usr/lib/systemd/system/postgresql-12.service
修改處如下:
Environment=PGDATA=/usr/local/pgsql/data/