PostgreSQL15.x安裝的詳細(xì)教程
一、介紹
PostgreSQL 是一個功能強大的開源關(guān)系型數(shù)據(jù)庫系統(tǒng),基于 C 語言實現(xiàn),采用 PostgreSQL 許可證,這是一種自由軟件許可證,允許用戶自由使用、修改和分發(fā)源代碼,同時支持商業(yè)用途而不設(shè)強制限制。這使得 PostgreSQL 成為廣受歡迎的開源數(shù)據(jù)庫解決方案。PostgreSQL 支持跨版本升級,過程通常平穩(wěn)。盡管國內(nèi)市場 MySQL 仍占主導(dǎo)地位,但許多國產(chǎn)數(shù)據(jù)庫(如華為的 GaussDB 和騰訊的 Tbase)及云服務(wù)提供商都廣泛支持 PostgreSQL。此外,pgloader 等數(shù)據(jù)遷移工具可以幫助用戶高效地將數(shù)據(jù)從 MySQL、SQL Server 和 Oracle 遷移到 PostgreSQL。
官方資源
- PostgreSQL 官方網(wǎng)站:PostgreSQL
- 國內(nèi)社區(qū):PostgreSQL 國內(nèi)社區(qū)
二、安裝
操作系統(tǒng):centos7,數(shù)據(jù)庫版本:15.8
2.1 下載并執(zhí)行安裝
打開官方地址 PostgreSQL: Linux downloads (Red Hat family):根據(jù)服務(wù)器版本選擇:

按照上圖Copy, paste and run the relevant parts of the setup script:里的命令執(zhí)行:下載PpstgreSQL的rpm包
# 下載PostgreSQL sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm # 安裝PostgreSQL sudo yum install -y postgresql15-server # 初始化數(shù)據(jù)庫 sudo /usr/pgsql-15/bin/postgresql-15-setup initdb # 設(shè)置開機啟動PostgreSQL sudo systemctl enable postgresql-15 # 啟動PostgreSQL sudo systemctl start postgresql-15

如果報錯:
錯誤:軟件包:postgresql15-15.8-1PGDG.rhel7.x86_64 (pgdg15)
需要:libzstd >= 1.4.0
錯誤:軟件包:postgresql15-15.8-1PGDG.rhel7.x86_64 (pgdg15)
需要:libzstd.so.1()(64bit)
錯誤:軟件包:postgresql15-server-15.8-1PGDG.rhel7.x86_64 (pgdg15)
需要:libzstd.so.1()(64bit)
解決方案:
wget https://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/l/libzstd-1.5.5-1.el7.x86_64.rpm wget https://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/l/llvm5.0-5.0.1-7.el7.x86_64.rpm wget https://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/l/llvm5.0-devel-5.0.1-7.el7.x86_64.rpm wget https://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/l/llvm5.0-libs-5.0.1-7.el7.x86_64.rpm
執(zhí)行:
yum install -y ./libzstd-1.5.5-1.el7.x86_64.rpm yum install -y centos-release-scl-rh llvm5*
執(zhí)行完成后,重新安裝postgresql15
2.2 登錄驗證
PostgreSQ默認(rèn)創(chuàng)建一個無密碼用戶:postgres
# 以超級用戶身份登錄L數(shù)據(jù)庫 sudo -u postgres psql # 查看有哪些庫 \l # 退出PostgreSQL \q # 修改密碼,如果需要數(shù)據(jù)庫連接工具連接,必須設(shè)置密碼 ALTER USER postgres WITH PASSWORD '新密碼';

三、配置
配置目錄: /var/lib/pgsql/15/data ,配置的核心文件都屬于postgres用戶,修改時需要切換為postgres用戶
主要操作postgresql.conf和pg_hba.conf

3.1 遠(yuǎn)程連接配置
配置postgresql.conf
postgresql.conf是PostgreSQL的主要配置文件,它包含了許多數(shù)據(jù)庫服務(wù)器的全局設(shè)置選項。通過修改這個文件,您可以配置數(shù)據(jù)庫服務(wù)器的各種參數(shù),如監(jiān)聽地址、端口號、最大連接數(shù)、日志記錄等。這個文件的修改通常需要重啟數(shù)據(jù)庫服務(wù)器才能生效。
修改/var/lib/pgsql/12/data/postgresql.conf配置文件,默認(rèn)情況下,PostgreSQL只允許localhost連接,直接配置為*即可

配置pg_hba.conf
pg_hba.conf是PostgreSQL的身份驗證配置文件,它定義了哪些客戶端可以連接到數(shù)據(jù)庫服務(wù)器以及如何進行身份驗證。通過修改這個文件,您可以控制訪問數(shù)據(jù)庫的權(quán)限,配置不同用戶的身份驗證方法,以及定義訪問控制規(guī)則。修改pg_hba.conf文件后,通常需要重新加載配置或重啟數(shù)據(jù)庫服務(wù)器才能使更改生效。
修改/var/lib/pgsql/12/data/pg_hba.conf配置文件,支持遠(yuǎn)程用戶訪問

模板參數(shù)說明:
- type:local代表本地連接,host代表可以指定連接的ADDRESS
- database:數(shù)據(jù)庫名,如果寫all,代表所有庫都可以連接
- user:連接的用戶,可以寫all,代表所有用戶
- address:代表那些IP地址可以連接
- method:加密方式,一般直接md5
重啟PostgreSQL
修改完上面的兩個配置文件,都需要重啟下:
systemctl restart postgresql-15
navicat連接測試

3.2 數(shù)據(jù)庫的日志配置
配置postgresql.conf

# 代表日志是開啟的。 logging_collector = on # 日志存放的路徑,默認(rèn)放到當(dāng)前目錄下的log里 log_directory = 'log' # 日志的文件名,默認(rèn)是postgresql為前綴,%a表示把星期作為后綴 log_filename = 'postgresql-%a.log' # 日志文件會被覆蓋 log_truncate_on_rotation = on # 一天一個日志文件 log_rotation_age = 1d # 日志文件,沒有大小限制 log_rotation_size = 0
3.3 設(shè)置wal_level級別(選用)
此參數(shù)是為了Flink 能夠捕捉數(shù)據(jù)更改并將其同步到 MySQL
wal_level 參數(shù)控制 PostgreSQL 生成的 WAL 信息的詳細(xì)程度。設(shè)置為 logical 時,PostgreSQL 會記錄足夠的信息來支持邏輯復(fù)制,否則PostgreSQL 無法提供所需的變更數(shù)據(jù)流
修改postgresql.conf,增加wal_level = logical,然后執(zhí)行systemctl restart postgresql-15重啟PostgreSQL

wal_level 的設(shè)置會影響 PostgreSQL 的日志記錄級別,具體分為三種:
- minimal:記錄最基本的 WAL 信息,僅用于崩潰恢復(fù),無法支持邏輯復(fù)制
- replica:記錄額外的 WAL 信息,支持物理復(fù)制,但仍不足以進行邏輯復(fù)制
- logical:記錄全部 WAL 信息,包括邏輯復(fù)制所需的數(shù)據(jù)變更,適用于 Flink 和其他邏輯復(fù)制工具
3.4 創(chuàng)建用戶并授權(quán)
創(chuàng)建用戶:
CREATE USER newuser WITH PASSWORD 'password';
授予數(shù)據(jù)庫全部權(quán)限:
GRANT ALL PRIVILEGES ON DATABASE mydatabase TO newuser;
授予表、序列和函數(shù)權(quán)限(在連接到 mydatabase 后):
\c mydatabase GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO newuser; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO newuser; GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public TO newuser;
確保權(quán)限應(yīng)用到新對象:
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO newuser; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO newuser; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON FUNCTIONS TO newuser;
以上就是PostgreSQL15.x安裝的詳細(xì)教程的詳細(xì)內(nèi)容,更多關(guān)于PostgreSQL15.x安裝的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
PostgreSQL+GeoHash地圖點位聚合實現(xiàn)代碼
這篇文章主要介紹了PostgreSQL+GeoHash地圖點位聚合,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07
基于PostgreSQL和mysql數(shù)據(jù)類型對比兼容
這篇文章主要介紹了基于PostgreSQL和mysql數(shù)據(jù)類型對比兼容,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12
PostgreSQL流復(fù)制參數(shù)max_wal_senders的用法說明
這篇文章主要介紹了PostgreSQL流復(fù)制參數(shù)max_wal_senders的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12
Postgresql psql文件執(zhí)行與批處理多個sql文件操作
這篇文章主要介紹了Postgresql psql文件執(zhí)行與批處理多個sql文件操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
postgresql 實現(xiàn)sql多行語句合并一行
這篇文章主要介紹了postgresql 實現(xiàn)sql多行語句合并一行的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12

