Rocky Linux 10.2 安装 PostgreSQL 15 完整教程

**摘要:**本文以 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 的安装、初始化和基本配置。后续可根据业务需要创建数据库、用户并调整性能参数。

相关推荐
不会就选b36 分钟前
Linux之线程池(二)
linux·运维·服务器
M78佐菲39 分钟前
Linux学习笔记:进程回收、exec函数簇与线程
linux·笔记·学习·算法
OpenFDE开源桌面40 分钟前
实操:如何将安卓 App与Linux系统应用级融合(附代码)
android·linux
Nontee1 小时前
Quartz 集群 + 策略模式:逾期预警推送系统设计实录
linux·服务器·策略模式
工业HMI实战笔记1 小时前
【拯救HMI】:工业自动化交互革命:HMI 触摸屏如何成为产线智能中枢
运维·自动化·交互
NJCloud1 小时前
Openstack(一)——基础环境配置与依赖服务安装
linux·架构·openstack
额额额对了1 小时前
Linux C 多线程编程基础:从内存模型到生命周期管理
linux·开发语言·算法
mengge.cloud1 小时前
Linux小白入门教程(基础命令篇)
linux·运维·服务器