PostgreSQL数据库RPM方式安装详解
PostgreSQL数据库RPM方式安装详解
- 1. 基础环境配置
- 2. 前期安装准备
- 3. 软件安装
- 3.2 RPM方式安装(PG 14)
- 3.2.1 下载RPM安装包
- 3.2.2 安装RPM包 PG14
- 3.2.3 初始化数据库
- 3.2.4 启动数据库
- 3.2.5 开机自启动
- 3.2.6 编辑环境变量
- 4. 安装后配置
1. 基础环境配置
2. 前期安装准备
基础环境配置参考:
PostgreSQL 数据库源码编译安装全流程详解 Linux 8
3. 软件安装
3.2 RPM方式安装(PG 14)
3.2.1 下载RPM安装包
https://yum.postgresql.org/rpmchart/
postgresql14 - PostgreSQL client programs and libraries
postgresql14-contrib - Contributed source and binaries distributed with PostgreSQL
postgresql14-libs - The shared libraries required for any PostgreSQL clients
postgresql14-server - The programs needed to create and run a PostgreSQL server
[root@pgdb soft]# ll
total 10672
-rwxr-xr-x 1 root root 1556440 Mar 18 21:42 postgresql14-14.2-1PGDG.rhel7.x86_64.rpm
-rwxr-xr-x 1 root root 698212 Mar 18 21:42 postgresql14-contrib-14.2-1PGDG.rhel7.x86_64.rpm
-rwxr-xr-x 1 root root 2609740 Mar 18 21:42 postgresql14-devel-14.2-1PGDG.rhel7.x86_64.rpm
-rwxr-xr-x 1 root root 273192 Mar 18 21:42 postgresql14-libs-14.2-1PGDG.rhel7.x86_64.rpm
-rwxr-xr-x 1 root root 5783224 Mar 18 21:42 postgresql14-server-14.2-1PGDG.rhel7.x86_64.rpm
3.2.2 安装RPM包 PG14
[root@pgdb soft]# rpm -ivh postgresql14-*
warning: postgresql14-14.4-1PGDG.rhel8.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 08b40d20: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...1:postgresql14-libs-14.4-1PGDG.rhel################################# [ 20%]2:postgresql14-14.4-1PGDG.rhel8 ################################# [ 40%]3:postgresql14-server-14.4-1PGDG.rh################################# [ 60%]4:postgresql14-contrib-14.4-1PGDG.r################################# [ 80%]5:postgresql14-devel-14.4-1PGDG.rhe################################# [100%]
[/usr/lib/tmpfiles.d/pesign.conf:1] Line references path below legacy directory /var/run/, updating /var/run/pesign → /run/pesign; please update the tmpfiles.d/ drop-in file accordingly.
3.2.3 初始化数据库
[root@pgdb ~]# su - postgres
[postgres@pgdb ~]$ /usr/pgsql-14/bin/initdb -D /pgdata/data/pg14
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.The database cluster will be initialized with locale "en_US.utf8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".Data page checksums are disabled.fixing permissions on existing directory /pgdata/data/pg14 ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... Asia/Shanghai
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... okinitdb: warning: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.Success. You can now start the database server using:/usr/pgsql-14/bin/pg_ctl -D /pgdata/data/pg14 -l logfile start
3.2.4 启动数据库
[postgres@pgdb ~]$ /usr/pgsql-14/bin/pg_ctl -D /pgdata/data/pg14 -l logfile start
waiting for server to start.... done
server started
[postgres@pgdb ~]$ /usr/pgsql-14/bin/pg_ctl status
pg_ctl: server is running (PID: 36530)
/usr/pgsql-14/bin/postgres "-D" "/pgdata/data/pg14"
3.2.5 开机自启动
- 修改自启动配置文件路径
# 修改配置文件路径
vi /usr/lib/systemd/system/postgresql-14.service
# Location of database directory
#Environment=PGDATA=/var/lib/pgsql/14/data/
Environment=PGDATA=/pgdata/data/pg14ExecStartPre=/usr/pgsql-14/bin/postgresql-14-check-db-dir ${PGDATA}
ExecStart=/usr/pgsql-14/bin/postmaster -D ${PGDATA}
- enable开机启动服务
# reload配置文件
[root@pgdb ~]# systemctl daemon-reload
# 启动数据库
[root@pgdb ~]# systemctl start postgresql-14.service
# 开机自启动
[root@pgdb ~]# systemctl enable postgresql-14.service
Created symlink /etc/systemd/system/multi-user.target.wants/postgresql-14.service → /usr/lib/systemd/system/postgresql-14.service.
# pg14 资源状态
[root@pgdb ~]# systemctl status postgresql-14.service
● postgresql-14.service - PostgreSQL 14 database serverLoaded: loaded (/usr/lib/systemd/system/postgresql-14.service; enabled; vendor preset: disabled)Active: active (running) since Wed 2025-03-19 15:28:25 CST; 1min 12s agoDocs: https://www.postgresql.org/docs/14/static/Main PID: 45656 (postmaster)Tasks: 8 (limit: 37638)Memory: 8.1MCGroup: /system.slice/postgresql-14.service├─45656 /usr/pgsql-14/bin/postmaster -D /pgdata/data/pg14/├─45657 postgres: logger ├─45659 postgres: checkpointer ├─45660 postgres: background writer ├─45661 postgres: walwriter ├─45662 postgres: autovacuum launcher ├─45663 postgres: stats collector └─45664 postgres: logical replication launcher Mar 19 15:28:25 pgdb systemd[1]: Starting PostgreSQL 14 database server...
Mar 19 15:28:25 pgdb postmaster[45656]: 2025-03-19 15:28:25.350 CST [45656] LOG: redirecting log output to logging collector process
Mar 19 15:28:25 pgdb postmaster[45656]: 2025-03-19 15:28:25.350 CST [45656] HINT: Future log output will appear in directory "log".
Mar 19 15:28:25 pgdb systemd[1]: Started PostgreSQL 14 database server.
3.2.6 编辑环境变量
- 编辑环境变量
vi .bash_profile
#PG 14
######
export PGPORT=5432
export PGDATA=/pgdata/data/pg14
export PGHOME=/usr/pgsql-14
- 验证环境变量
[postgres@pgdb ~]$ source .bash_profile
[postgres@pgdb ~]$ which pg_ctl
/usr/pgsql-14/bin/pg_ctl
4. 安装后配置
PostgreSQL 数据库源码编译安装全流程详解 Linux 8