安装PostgreSQL
1. 在线安装Postgresql
当前最新稳定版PG数据库为Postgresql17,配置使用YUM源:
sh
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
禁用内置的pg安装源:
sh
sudo dnf -qy module disable postgresql
安装PostgreSQL服务端:
sh
sudo dnf install -y postgresql17-server
初始化数据库:
sh
sudo /usr/pgsql-17/bin/postgresql-17-setup initdb
设置开机自启并启动pg服务:
sh
sudo systemctl enable postgresql-17 --now
查看postgresql运行状态:
sh
[jack@Node01 software]$ sudo systemctl status postgresql-17
● postgresql-17.service - PostgreSQL 17 database server
Loaded: loaded (/usr/lib/systemd/system/postgresql-17.service; enabled; preset: disabled)
Active: active (running) since Fri 2025-09-19 07:37:14 CST; 7s ago
Docs: https://www.postgresql.org/docs/17/static/
Process: 1953 ExecStartPre=/usr/pgsql-17/bin/postgresql-17-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
Main PID: 1960 (postgres)
Tasks: 7 (limit: 50327)
Memory: 17.7M
CPU: 161ms
CGroup: /system.slice/postgresql-17.service
├─1960 /usr/pgsql-17/bin/postgres -D /var/lib/pgsql/17/data/
├─1961 "postgres: logger "
├─1962 "postgres: checkpointer "
├─1963 "postgres: background writer "
├─1965 "postgres: walwriter "
├─1966 "postgres: autovacuum launcher "
└─1967 "postgres: logical replication launcher "
9月 19 07:37:13 Node01 systemd[1]: Starting PostgreSQL 17 database server...
9月 19 07:37:14 Node01 postgres[1960]: 2025-09-19 07:37:14.052 CST [1960] 日志: 日志输出重定向到日志收集进程
9月 19 07:37:14 Node01 postgres[1960]: 2025-09-19 07:37:14.052 CST [1960] 提示: 后续的日志输出将出现在目录 "log"中.
9月 19 07:37:14 Node01 systemd[1]: Started PostgreSQL 17 database server.
2. 配置Postgresql
安装时会自动创建名为postgres的用户,配置postgres系统用户密码:
sh
sudo passwd postgres
默认用户是postgres, 没有密码并且只能本地登录
2.1 配置密码
sh
# 切换postgres用户
su postgres -
# 登录数据库(无需密码,直接进入)
psql
执行SQL命令修改密码:
sh
postgres=# ALTER USER postgres WITH PASSWORD '123456';
ALTER ROLE
## 顺便看下有那些数据库
postgres=# \l
数据库列表
名称 | 拥有者 | 字元编码 | Locale Provider | 校对规则 | Ctype | Locale | ICU Rules | 存取权限
-----------+----------+----------+-----------------+-------------+-------------+--------+-----------+-----------------------
postgres | postgres | UTF8 | libc | zh_CN.UTF-8 | zh_CN.UTF-8 | | |
template0 | postgres | UTF8 | libc | zh_CN.UTF-8 | zh_CN.UTF-8 | | | =c/postgres +
| | | | | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | libc | zh_CN.UTF-8 | zh_CN.UTF-8 | | | =c/postgres +
| | | | | | | | postgres=CTc/postgres
(3 行记录)
## 退出psql
postgres=# \q
2.2 配置远程连接
- 设置postgresql.conf
sh
## 使用postgres修改配置文件
su postgres -
vim /var/lib/pgsql/17/data/postgresql.conf
找到以下配置: 解开这两行注释并更新:
ini
listen_addresses = '*'
port = 5432
- 设置pg_hba.conf
sh
vim /var/lib/pgsql/17/data/pg_hba.conf
找到以下配置: 注释掉原有的这两行,新增以下两行:
ini
host all all 0.0.0.0/0 md5
host all all ::0/0 md5
- 退出postgres用户,重启postresql
sh
[jack@Node01 software]$ sudo systemctl restart postgresql-17