**摘要:**本文以 Rocky Linux 10.2 为例,详细介绍 PostgreSQL 15 的完整安装与配置流程。内容涵盖官方 YUM 仓库的添加、系统自带模块的禁用、数据库的安装与初始化、服务的启动与开机自启设置,以及远程访问认证的配置方法。此外,还包含 postgres 用户密码设置、连接测试和常见问题排查,帮助读者在 Rocky Linux 10.2 上快速搭建可用的 PostgreSQL 15 环境。
目录导航:
- [1. 环境准备](#1. 环境准备)
- [2. 官网查看安装内容](#2. 官网查看安装内容)
- [3. 添加 PostgreSQL 官方 YUM 仓库](#3. 添加 PostgreSQL 官方 YUM 仓库)
- [4. 禁用系统自带的 PostgreSQL 模块](#4. 禁用系统自带的 PostgreSQL 模块)
- [5. 安装 PostgreSQL 15](#5. 安装 PostgreSQL 15)
- [6. 初始化数据库](#6. 初始化数据库)
- [7. 启动并设置开机自启](#7. 启动并设置开机自启)
- [8. 配置访问认证](#8. 配置访问认证)
- [9. 设置 postgres 用户密码并测试连接](#9. 设置 postgres 用户密码并测试连接)
- [10. 常见问题排查](#10. 常见问题排查)
- [11. 总结](#11. 总结)
1. 环境准备
本文以 Rocky Linux 10.2 为例,介绍如何安装并配置 PostgreSQL 15。开始安装前,请先确认系统版本和当前用户权限。
bash
cat /etc/rocky-release
whoami
sudo -v
建议使用具有 sudo 权限的普通用户执行安装操作,避免直接使用 root 账户。
2. 官网查看安装内容
官方地址:PostgreSQL: The world's most advanced open source database

点击download

点击 Linux,点击 Red Hat/Rocky/AlmaLinux。Rocky Linux 和 CentOS、Red Hat 用法上完全兼容,安装其他软件,如果没有 Rocky Linux 选项也可以直接选择 Red Hat。

选择系统版本、架构和需要安装的 PG 版本,会自动生成相关脚本。查看系统架构和系统版本:
bash
uname -a

3. 添加 PostgreSQL 官方 YUM 仓库
Rocky Linux 默认仓库中的 PostgreSQL 版本可能不是 15,因此需要先添加 PostgreSQL 官方提供的 YUM 仓库。官方仓库地址会根据系统架构自动选择,这里以 x86_64 为例。
bash
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-10-x86_64/pgdg-redhat-repo-latest.noarch.rpm
安装完成后,可以查看仓库是否已正确添加:
bash
dnf repolist | grep pgdg
4. 禁用系统自带的 PostgreSQL 模块
Rocky Linux 10 默认启用了 PostgreSQL 的模块流,为避免与官方仓库冲突,需要先禁用系统模块。
bash
sudo dnf -qy module disable postgresql

5. 安装 PostgreSQL 15
仓库配置完成后,使用 dnf 安装 PostgreSQL 15 服务端和客户端工具。
bash
sudo dnf install -y postgresql15-server postgresql15
安装完成后,确认版本信息:
bash
/usr/pgsql-15/bin/postgres --version
6. 初始化数据库
PostgreSQL 15 安装后不会自动初始化数据目录,需要手动执行初始化命令。数据目录默认为 /var/lib/pgsql/15/data。
bash
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
初始化成功后,会输出类似以下提示:
bash
Initializing database ... OK

7. 启动并设置开机自启
初始化完成后,启动 PostgreSQL 服务,并设置为开机自启动。
bash
sudo systemctl enable --now postgresql-15
sudo systemctl status postgresql-15
如果状态显示 active (running),说明服务已正常运行。
单独启动命令
bash
sudo systemctl start postgresql-15
8. 配置访问认证
PostgreSQL 默认只允许本地连接。如需远程访问或修改认证方式。
8.1. 修改 postgresql.conf 文件
bash
sudo vi /var/lib/pgsql/15/data/postgresql.conf
定位到 #listen_addresses='localhost'。PostgreSQL 安装完成后,默认只接受来自本机 localhost 的连接请求,通过将该行内容修改为 listen_addresses='*' 来允许数据库服务器监听来自任何主机的连接请求。如果出于安全考虑不想对所有 IP 开放,可以指定具体网卡 IP:
listen_addresses = '192.168.1.100, 127.0.0.1'
bash
listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
8.2. 修改 pg_hba.conf 文件
bash
sudo vi /var/lib/pgsql/15/data/pg_hba.conf
例如,允许本机使用密码登录,可将对应行修改为:
bash
host all all 127.0.0.1/32 scram-sha-256
例如,允许所有远程主机登录,可修改为:
bash
host all all 0.0.0.0/0 scram-sha-256
- 0.0.0.0/0 所有网段
- .168.1.0/24 一个 C 类网段(如
192.168.1.0~255)256个IP - /16 一个 B 类网段 65536个IP
- /8 一个 A 类网段 16,777,216个IP
修改完成后,重启服务使配置生效:
bash
sudo systemctl restart postgresql-15
9. 设置 postgres 用户密码并测试连接
切换到 postgres 系统用户,进入 psql 命令行设置数据库超级用户密码。
bash
sudo -i -u postgres
psql -c "ALTER USER postgres PASSWORD '你的密码';"
psql -c "\q"
退出后,使用密码方式测试本地连接:
bash
psql -h 127.0.0.1 -U postgres -d postgres
10. 常见问题排查
如果在安装或启动过程中遇到问题,可以参考以下常见排查方向:
- 端口被占用 :检查 5432 端口是否被其他进程占用,使用
ss -lntp | grep 5432查看。 - 初始化失败:确认 /var/lib/pgsql/15/data 目录为空且属主为 postgres 用户。
- 认证失败:检查 pg_hba.conf 中的认证方式是否与客户端请求一致。
- 防火墙拦截 :如需远程访问,放行 5432 端口:
sudo firewall-cmd --add-port=5432/tcp --permanent并重新加载。
11. 总结
通过以上步骤,即可在 Rocky Linux 10.2 上完成 PostgreSQL 15 的安装、初始化和基本配置。后续可根据业务需要创建数据库、用户并调整性能参数。