PostgreSQL数据库yum方式安装
- 1. 基础环境配置
- 2. 前期安装准备
- 3. 软件安装
- 3.1 YUM方式安装(PG 13)
- 3.1.1 安装rpm仓库
- 3.1.2 安装软件包PG13
- 3.1.3 初始化数据库
- 3.1.4 启动数据库
- 3.1.5 开机自启动
- 3.1.6 编辑环境变量
- 4. 安装后配置
1. 基础环境配置
2. 前期安装准备
基础环境配置参考:
PostgreSQL 数据库源码编译安装全流程详解 Linux 8
3. 软件安装
3.1 YUM方式安装(PG 13)
https://www.postgresql.org/download/linux/redhat/
官方安装步骤
RHEL 7.4 只支持 PG 13 ,PG软件和实例均安装在默认路径中
PG 14 和PG 15 都缺少依赖包,PG 16在RPM仓库中不存在
# Install the repository RPM:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm# Install PostgreSQL:
sudo yum install -y postgresql13-server# Optionally initialize the database and enable automatic start:
sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
sudo systemctl enable postgresql-13
sudo systemctl start postgresql-13
3.1.1 安装rpm仓库
[root@pgdb ~]# sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
pgdg-redhat-repo-latest.noarch.rpm | 10 kB 00:00:00
Examining /var/tmp/yum-root-NuZcd3/pgdg-redhat-repo-latest.noarch.rpm: pgdg-redhat-repo-42.0-38PGDG.noarch
Marking /var/tmp/yum-root-NuZcd3/pgdg-redhat-repo-latest.noarch.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package pgdg-redhat-repo.noarch 0:42.0-38PGDG will be installed
--> Finished Dependency ResolutionDependencies Resolved======================================================================================================================================================================================================Package Arch Version Repository Size
======================================================================================================================================================================================================
Installing:pgdg-redhat-repo noarch 42.0-38PGDG /pgdg-redhat-repo-latest.noarch 12 kTransaction Summary
======================================================================================================================================================================================================
Install 1 PackageTotal size: 12 k
Installed size: 12 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionInstalling : pgdg-redhat-repo-42.0-38PGDG.noarch 1/1
server | 4.1 kB 00:00:00 Verifying : pgdg-redhat-repo-42.0-38PGDG.noarch 1/1 Installed:pgdg-redhat-repo.noarch 0:42.0-38PGDG Complete!
3.1.2 安装软件包PG13
[root@pgdb ~]# yum install -y postgresql13-server
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Resolving Dependencies
--> Running transaction check
---> Package postgresql13-server.x86_64 0:13.20-1PGDG.rhel7 will be installed
--> Processing Dependency: postgresql13-libs(x86-64) = 13.20-1PGDG.rhel7 for package: postgresql13-server-13.20-1PGDG.rhel7.x86_64
--> Processing Dependency: postgresql13(x86-64) = 13.20-1PGDG.rhel7 for package: postgresql13-server-13.20-1PGDG.rhel7.x86_64
--> Processing Dependency: libpq.so.5()(64bit) for package: postgresql13-server-13.20-1PGDG.rhel7.x86_64
--> Running transaction check
---> Package postgresql13.x86_64 0:13.20-1PGDG.rhel7 will be installed
---> Package postgresql13-libs.x86_64 0:13.20-1PGDG.rhel7 will be installed
--> Finished Dependency ResolutionDependencies Resolved======================================================================================================================================================================================================Package Arch Version Repository Size
======================================================================================================================================================================================================
Installing:postgresql13-server x86_64 13.20-1PGDG.rhel7 pgdg13 5.3 M
Installing for dependencies:postgresql13 x86_64 13.20-1PGDG.rhel7 pgdg13 1.4 Mpostgresql13-libs x86_64 13.20-1PGDG.rhel7 pgdg13 390 kTransaction Summary
======================================================================================================================================================================================================
Install 1 Package (+2 Dependent packages)Total download size: 7.2 M
Installed size: 31 M
Downloading packages:
warning: /var/cache/yum/x86_64/7Server/pgdg13/packages/postgresql13-libs-13.20-1PGDG.rhel7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 73e3b907: NOKEY ] 67 kB/s | 799 kB 00:01:37 ETA
Public key for postgresql13-libs-13.20-1PGDG.rhel7.x86_64.rpm is not installed
(1/3): postgresql13-libs-13.20-1PGDG.rhel7.x86_64.rpm | 390 kB 00:00:12
(2/3): postgresql13-13.20-1PGDG.rhel7.x86_64.rpm | 1.4 MB 00:00:41
(3/3): postgresql13-server-13.20-1PGDG.rhel7.x86_64.rpm | 5.3 MB 00:01:31
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 71 kB/s | 7.2 MB 00:01:43
Retrieving key from file:///etc/pki/rpm-gpg/PGDG-RPM-GPG-KEY-RHEL7
Importing GPG key 0x73E3B907:Userid : "PostgreSQL RPM Repository <pgsql-pkg-yum@lists.postgresql.org>"Fingerprint: f245 f0bf 96ac 1827 44ca ff2e 64fa ce11 73e3 b907Package : pgdg-redhat-repo-42.0-38PGDG.noarch (installed)From : /etc/pki/rpm-gpg/PGDG-RPM-GPG-KEY-RHEL7
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionInstalling : postgresql13-libs-13.20-1PGDG.rhel7.x86_64 1/3 Installing : postgresql13-13.20-1PGDG.rhel7.x86_64 2/3 Installing : postgresql13-server-13.20-1PGDG.rhel7.x86_64 3/3 Verifying : postgresql13-libs-13.20-1PGDG.rhel7.x86_64 1/3 Verifying : postgresql13-server-13.20-1PGDG.rhel7.x86_64 2/3 Verifying : postgresql13-13.20-1PGDG.rhel7.x86_64 3/3 Installed:postgresql13-server.x86_64 0:13.20-1PGDG.rhel7 Dependency Installed:postgresql13.x86_64 0:13.20-1PGDG.rhel7 postgresql13-libs.x86_64 0:13.20-1PGDG.rhel7 Complete!
3.1.3 初始化数据库
# 初始化数据库
[root@pgdb ~]# sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
Initializing database ... OK
3.1.4 启动数据库
# 启动数据库
[root@pgdb soft]# sudo systemctl start postgresql-13[postgres@pgdb ~]$ psql --version
psql (PostgreSQL) 13.20
3.1.5 开机自启动
# 开启数据库开启自启动
[root@pgdb ~]# sudo systemctl enable postgresql-13
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-13.service to /usr/lib/systemd/system/postgresql-13.service.# 查看数据库状态
[root@pgdb ~]# systemctl status postgresql-13
● postgresql-13.service - PostgreSQL 13 database serverLoaded: loaded (/usr/lib/systemd/system/postgresql-13.service; enabled; vendor preset: disabled)Active: active (running) since Mon 2025-03-17 23:13:21 CST; 3s agoDocs: https://www.postgresql.org/docs/13/static/Process: 12072 ExecStartPre=/usr/pgsql-13/bin/postgresql-13-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)Main PID: 12078 (postmaster)CGroup: /system.slice/postgresql-13.service├─12078 /usr/pgsql-13/bin/postmaster -D /var/lib/pgsql/13/data/├─12080 postgres: logger ├─12082 postgres: checkpointer ├─12083 postgres: background writer ├─12084 postgres: walwriter ├─12085 postgres: autovacuum launcher ├─12086 postgres: stats collector └─12087 postgres: logical replication launcher Mar 17 23:13:21 pgdb systemd[1]: Starting PostgreSQL 13 database server...
Mar 17 23:13:21 pgdb postmaster[12078]: 2025-03-17 23:13:21.979 CST [12078] LOG: redirecting log output to logging collector process
Mar 17 23:13:21 pgdb postmaster[12078]: 2025-03-17 23:13:21.979 CST [12078] HINT: Future log output will appear in directory "log".
Mar 17 23:13:21 pgdb systemd[1]: Started PostgreSQL 13 database server.
3.1.6 编辑环境变量
[postgres@pgdb ~]$ vi .bash_profile
export PGPORT=5432
export PGDATA=/var/lib/pgsql/13/data/
export LANG=en_US.utf8
export PGHOME=/usr/pgsql-13
export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH
export DATE=`date +"%Y%m%d%H%M"`
export PATH=$PGHOME/bin:$PATH:.
export MANPATH=$PGHOME/share/man:$MANPATH
#export PGHOST=$PGDATA
export PGUSER=postgres
export PGDATABASE=postgres
[postgres@pgdb ~]$ source .bash_profile
[postgres@pgdb ~]$ which pg_ctl
/usr/pgsql-13/bin/pg_ctl
4. 安装后配置
安装后配置参考:
PostgreSQL 数据库源码编译安装全流程详解 Linux 8