Linux系統(tǒng)安裝PostgreSQL數(shù)據(jù)庫(kù)及配置的詳細(xì)過(guò)程
一、PostgreSQL介紹
1.PostgreSQL簡(jiǎn)介
PostgreSQL (也叫 Postgres) 是一個(gè)自由的對(duì)象 - 關(guān)系數(shù)據(jù)庫(kù)服務(wù)器 (數(shù)據(jù)庫(kù)管理系統(tǒng)),它在靈活的 BSD - 風(fēng)格許可證下發(fā)行。它提供了相對(duì)其他開(kāi)放源代碼數(shù)據(jù)庫(kù)系統(tǒng) (比如 MySQL 和 Firebird),和對(duì)專有系統(tǒng)比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server 的一種選擇。
2.PostgreSQL特點(diǎn)
- 它是ORDBMS(面向?qū)ο蟮年P(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng))。
- 外鍵引用完整性
- 用戶自定義的類型
- 表的繼承性
- 視圖、規(guī)則、子查詢
- 多版本并發(fā)控制(MVCC)
- 復(fù)雜的鎖定機(jī)制
- 異步復(fù)制
- 流式復(fù)制(從9.0開(kāi)始)
- 嵌套事務(wù)(保存點(diǎn))
二、本次實(shí)踐介紹
1.本次實(shí)踐介紹
從小白視角,以最快速度在LInux系統(tǒng)上部署一個(gè)簡(jiǎn)單的PostgreSQL數(shù)據(jù)庫(kù)。
2.實(shí)踐環(huán)境介紹
hostname | IP地址 | 操作系統(tǒng)版本 | PostgreSQL版本 |
---|---|---|---|
jeven | 192.168.3.166 | centos 7.6 | 13.10 |
三、配置PostgreSQL的yum倉(cāng)庫(kù)源
1.檢查本地是否部署PostgreSQL
檢查本地環(huán)境是否部署過(guò)PostgreSQL
[root@jeven ~]# rpm -qa | grep postgres [root@jeven ~]#
2.配置鏡像源
配置PostgreSQL的yum倉(cāng)庫(kù)源,使用的是阿里提供的鏡像源。
[root@jeven ~]# rpm -Uvh https://mirrors.aliyun.com/postgresql/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm Retrieving https://mirrors.aliyun.com/postgresql/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm warning: /var/tmp/rpm-tmp.kcnTVa: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY Preparing... ################################# [100%] Updating / installing... 1:pgdg-redhat-repo-42.0-32 ################################# [100%] [root@jeven ~]# sed -i "s@https://download.postgresql.org/pub@https://mirrors.aliyun.com/postgresql@g" /etc/yum.repos.d/pgdg-redhat-all.repo [root@jeven ~]#
sed -i "s@https://download.postgresql.org/pub@https://mirrors.aliyun.com/postgresql@g" /etc/yum.repos.d/pgdg-redhat-all.repo
生成緩存
yum clean cache yum makecache
3.檢查yum倉(cāng)庫(kù)鏡像源狀態(tài)
[root@jeven yum.repos.d]# yum repolist all |grep enable base/7/x86_64 CentOS-7 - Base - mirr enabled: 10,072 docker-ce-stable/7/x86_64 Docker CE Stable - x86 enabled: 211 elrepo ELRepo.org Community E enabled: 157 epel/x86_64 Extra Packages for Ent enabled: 13,770 extras/7/x86_64 CentOS-7 - Extras - mi enabled: 515 mysql-connectors-community/x86_64 MySQL Connectors Commu enabled: 213 mysql-tools-community/x86_64 MySQL Tools Community enabled: 96 mysql57-community/x86_64 MySQL 5.7 Community Se enabled: 642 pgdg-common/7/x86_64 PostgreSQL common RPMs enabled: 396 pgdg11/7/x86_64 PostgreSQL 11 for RHEL enabled: 1,453 pgdg12/7/x86_64 PostgreSQL 12 for RHEL enabled: 1,071 pgdg13/7/x86_64 PostgreSQL 13 for RHEL enabled: 823 pgdg14/7/x86_64 PostgreSQL 14 for RHEL enabled: 552 pgdg15/7/x86_64 PostgreSQL 15 for RHEL enabled: 263 remi-safe Safe Remi's RPM reposi enabled: 5,134 updates/7/x86_64 CentOS-7 - Updates - m enabled: 4,857
四、安裝PostgreSQL
1.安裝PostgreSQL
使用yum直接PostgreSQL13的版本
[root@jeven yum.repos.d]# yum -y install postgresql13-server Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * elrepo: hkg.mirror.rackspace.com * remi-safe: ftp.riken.jp Resolving Dependencies --> Running transaction check ---> Package postgresql13-server.x86_64 0:13.10-1PGDG.rhel7 will be installed --> Processing Dependency: postgresql13-libs(x86-64) = 13.10-1PGDG.rhel7 for package: postgresql13-server-13.10-1PGDG.rhel7.x86_64 --> Processing Dependency: postgresql13(x86-64) = 13.10-1PGDG.rhel7 for package: postgresql13-server-13.10-1PGDG.rhel7.x86_64 --> Processing Dependency: libpq.so.5()(64bit) for package: postgresql13-server-13.10-1PGDG.rhel7.x86_64 --> Running transaction check ---> Package postgresql13.x86_64 0:13.10-1PGDG.rhel7 will be installed ---> Package postgresql13-libs.x86_64 0:13.10-1PGDG.rhel7 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================================================================================== Package Arch Version Repository Size ================================================================================================================================================== Installing: postgresql13-server x86_64 13.10-1PGDG.rhel7 pgdg13 5.4 M Installing for dependencies: postgresql13 x86_64 13.10-1PGDG.rhel7 pgdg13 1.4 M postgresql13-libs x86_64 13.10-1PGDG.rhel7 pgdg13 385 k Transaction Summary ================================================================================================================================================== Install 1 Package (+2 Dependent packages) Total download size: 7.1 M Installed size: 31 M Downloading packages: warning: /var/cache/yum/x86_64/7/pgdg13/packages/postgresql13-libs-13.10-1PGDG.rhel7.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY Public key for postgresql13-libs-13.10-1PGDG.rhel7.x86_64.rpm is not installed (1/3): postgresql13-libs-13.10-1PGDG.rhel7.x86_64.rpm | 385 kB 00:00:00 (2/3): postgresql13-13.10-1PGDG.rhel7.x86_64.rpm | 1.4 MB 00:00:01 (3/3): postgresql13-server-13.10-1PGDG.rhel7.x86_64.rpm | 5.4 MB 00:00:02 -------------------------------------------------------------------------------------------------------------------------------------------------- Total 2.6 MB/s | 7.1 MB 00:00:02 Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG Importing GPG key 0x442DF0F8: Userid : "PostgreSQL RPM Building Project <pgsql-pkg-yum@postgresql.org>" Fingerprint: 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8 Package : pgdg-redhat-repo-42.0-32.noarch (installed) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG Running transaction check Running transaction test Transaction test succeeded Running transaction Warning: RPMDB altered outside of yum. Installing : postgresql13-libs-13.10-1PGDG.rhel7.x86_64 1/3 Installing : postgresql13-13.10-1PGDG.rhel7.x86_64 2/3 Installing : postgresql13-server-13.10-1PGDG.rhel7.x86_64 3/3 Verifying : postgresql13-server-13.10-1PGDG.rhel7.x86_64 1/3 Verifying : postgresql13-13.10-1PGDG.rhel7.x86_64 2/3 Verifying : postgresql13-libs-13.10-1PGDG.rhel7.x86_64 3/3 Installed: postgresql13-server.x86_64 0:13.10-1PGDG.rhel7 Dependency Installed: postgresql13.x86_64 0:13.10-1PGDG.rhel7 postgresql13-libs.x86_64 0:13.10-1PGDG.rhel7 Complete!
2.初始化數(shù)據(jù)庫(kù)
初始化PostgreSQL數(shù)據(jù)庫(kù)
[root@jeven ~]# postgresql-13-setup initdb Initializing database ... OK
3.啟動(dòng)PostgreSQL數(shù)據(jù)庫(kù)
啟動(dòng)PostgreSQL數(shù)據(jù)庫(kù),并設(shè)置開(kāi)機(jī)自啟。
[root@jeven ~]# systemctl enable postgresql-13 [root@jeven ~]# systemctl start postgresql-13 [root@jeven ~]#
4.檢查PostgreSQL數(shù)據(jù)庫(kù)狀態(tài)
檢查當(dāng)前PostgreSQL服務(wù)狀態(tài)
[root@jeven ~]# systemctl status postgresql-13.service ● postgresql-13.service - PostgreSQL 13 database server Loaded: loaded (/usr/lib/systemd/system/postgresql-13.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2023-03-27 21:07:33 CST; 1min 34s ago Docs: https://www.postgresql.org/docs/13/static/ Process: 13256 ExecStartPre=/usr/pgsql-13/bin/postgresql-13-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS) Main PID: 13264 (postmaster) Tasks: 8 Memory: 17.6M CGroup: /system.slice/postgresql-13.service ├─13264 /usr/pgsql-13/bin/postmaster -D /var/lib/pgsql/13/data/ ├─13266 postgres: logger ├─13268 postgres: checkpointer ├─13269 postgres: background writer ├─13270 postgres: walwriter ├─13271 postgres: autovacuum launcher ├─13272 postgres: stats collector └─13273 postgres: logical replication launcher Mar 27 21:07:33 jeven systemd[1]: Starting PostgreSQL 13 database server... Mar 27 21:07:33 jeven postmaster[13264]: 2023-03-27 21:07:33.325 CST [13264] LOG: redirecting log output to logging collector process Mar 27 21:07:33 jeven postmaster[13264]: 2023-03-27 21:07:33.325 CST [13264] HINT: Future log output will appear in directory "log". Mar 27 21:07:33 jeven systemd[1]: Started PostgreSQL 13 database server.
五、PostgreSQL的基本命令
1.查看PostgreSQL相關(guān)文件
檢查PostgreSQL服務(wù)端的所有相關(guān)文件所在目錄
rpm -ql postgresql13-server
檢查PostgreSQL客戶端的所有相關(guān)文件所在目錄
rpm -ql postgresql13
2.PostgreSQL的相關(guān)命令
PostgreSQL的所有相關(guān)命令文件
[root@jeven ~]# /usr/pgsql-13/bin/ clusterdb pg_basebackup pg_dumpall pg_test_timing postmaster createdb pgbench pg_isready pg_upgrade psql createuser pg_checksums pg_receivewal pg_verifybackup reindexdb dropdb pg_config pg_resetwal pg_waldump vacuumdb dropuser pg_controldata pg_restore postgres initdb pg_ctl pg_rewind postgresql-13-check-db-dir pg_archivecleanup pg_dump pg_test_fsync postgresql-13-setup
六、修改用戶密碼
1.切換postgres用戶
切換postgres用戶
[root@jeven ~]# su - postgres -bash-4.2$
2.登錄PostgreSQL數(shù)據(jù)庫(kù)
登錄后,提示符變?yōu)?‘postgres=#’
[root@jeven ~]# su - postgres -bash-4.2$ psql -U postgres psql (13.10) Type "help" for help. postgres=#
3.修改PostgreSQL數(shù)據(jù)庫(kù)用戶密碼
修改PostgreSQL數(shù)據(jù)庫(kù)用戶密碼
postgres=# ALTER USER postgres WITH PASSWORD 'postgres'; ALTER ROLE
七、配置PostgreSQL遠(yuǎn)程訪問(wèn)
1.配置遠(yuǎn)程訪問(wèn)
修改/var/lib/pgsql/13/data/postgresql.conf配置文件,開(kāi)啟遠(yuǎn)程訪問(wèn)。
刪除localhost,改為監(jiān)聽(tīng)所有,或者自己指定的服務(wù)器IP地址。
-bash-4.2$ grep listen /var/lib/pgsql/13/data/postgresql.conf listen_addresses = '*' # what IP address(es) to listen on;
修改/var/lib/pgsql/13/data/pg_hba.conf文件,新增以下兩行:
host all all 127.0.0.1/32 ident host all all 0.0.0.0/0 md5
2.重啟PostgreSQL服務(wù)
重啟PostgreSQL服務(wù)
systemctl restart postgresql-13.service
3.遠(yuǎn)程連接PostgreSQL數(shù)據(jù)庫(kù)
使用psql命令遠(yuǎn)程連接PostgreSQL數(shù)據(jù)庫(kù)
[root@jeven ~]# psql -h192.168.3.166 -Upostgres -W Password: psql (13.10) Type "help" for help. postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (3 rows) postgres=#
總結(jié)
到此這篇關(guān)于Linux系統(tǒng)安裝PostgreSQL數(shù)據(jù)庫(kù)及配置的詳細(xì)過(guò)程的文章就介紹到這了,更多相關(guān)Linux安裝PostgreSQL數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于PostgreSQL的時(shí)序數(shù)據(jù)庫(kù)TimescaleDB的基本用法和概念
時(shí)序數(shù)據(jù)是指按照時(shí)間順序存儲(chǔ)的數(shù)據(jù),TimescaleDB是一個(gè)開(kāi)源的、擴(kuò)展了PostgreSQL的時(shí)序數(shù)據(jù)庫(kù)擴(kuò)展,本文就給大家詳細(xì)的介紹一下基于PostgreSQL的時(shí)序數(shù)據(jù)庫(kù)TimescaleDB的基本用法和概念,需要的朋友可以參考下2023-06-06pgsql 如何刪除仍有活動(dòng)鏈接的數(shù)據(jù)庫(kù)
這篇文章主要介紹了pgsql 刪除仍有活動(dòng)鏈接的數(shù)據(jù)庫(kù)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01PostgreSQL pg_archivecleanup與清理archivelog的操作
這篇文章主要介紹了PostgreSQL pg_archivecleanup與清理archivelog的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01PostgreSQL并行計(jì)算算法及參數(shù)強(qiáng)制并行度設(shè)置方法
這篇文章主要介紹了PostgreSQL 并行計(jì)算算法,參數(shù),強(qiáng)制并行度設(shè)置,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04Vcenter清理/storage/archive空間的處理方式
通過(guò)SSH登陸到Vcenter并檢查/storage/archive目錄發(fā)現(xiàn)占用過(guò)高,該目錄用于存儲(chǔ)歸檔的日志文件和歷史數(shù)據(jù),解決方案是保留近30天的歸檔文件,這篇文章主要給大家介紹了關(guān)于Vcenter清理/storage/archive空間的處理方式,需要的朋友可以參考下2024-11-11使用PostgreSQL數(shù)據(jù)庫(kù)進(jìn)行中文全文搜索的實(shí)現(xiàn)方法
目前在PostgreSQL中常見(jiàn)的兩個(gè)中文分詞插件是zhparser和pg_jieba,這里我們使用zhparser,插件的編譯和安裝請(qǐng)查看官方文檔 ,安裝還是比較復(fù)雜的,建議找個(gè)現(xiàn)成docker鏡像,本文給大家介紹了在PostgreSQL數(shù)據(jù)庫(kù)使用中文全文搜索,需要的朋友可以參考下2023-09-09CentOS中運(yùn)行PostgreSQL需要修改的內(nèi)核參數(shù)及配置腳本分享
這篇文章主要介紹了CentOS中運(yùn)行PostgreSQL需要修改的內(nèi)核參數(shù)及配置腳本分享,本文從系統(tǒng)資源限制類和內(nèi)存參數(shù)優(yōu)化類來(lái)進(jìn)行說(shuō)明,需要的朋友可以參考下2014-07-07PostgreSQL數(shù)據(jù)庫(kù)時(shí)間類型相加減操作
PostgreSQL提供了許多函數(shù),這些函數(shù)返回與當(dāng)前日期和時(shí)間相關(guān)的值,下面這篇文章主要給大家介紹了關(guān)于PostgreSQL數(shù)據(jù)庫(kù)時(shí)間類型相加減操作的相關(guān)資料,需要的朋友可以參考下2023-10-10