Rocky Linux 安装 PostgreSQL 数据库完整指南(2025版)

一、环境准备

  1. 系统要求

    • 推荐使用Rocky Linux 9.4及以上版本(支持PostgreSQL 16+)
    • 确保已安装dnf包管理工具和wget
    • 建议关闭SELinux(临时测试):setenforce 0
  2. 添加官方仓库

    less 复制代码
    bash
    sudo dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    sudo dnf -qy module disable postgresql  # 禁用系统默认模块[1](@ref)

二、安装PostgreSQL

  1. 选择版本安装

    版本 安装命令 数据目录
    15.x sudo dnf install postgresql15-server postgresql15-contrib /var/lib/pgsql/15/data
    16.x sudo dnf install postgresql16-server postgresql16-contrib /var/lib/pgsql/16/data
  2. 初始化数据库

    less 复制代码
    bash
    sudo /usr/pgsql-16/bin/postgresql-16-setup initdb  # 根据实际版本调整[1](@ref)

三、服务配置

  1. 启动服务

    bash 复制代码
    bash
    sudo systemctl enable --now postgresql-16
    sudo systemctl status postgresql-16  # 验证运行状态
  2. 关键配置修改

    • postgresql.conf

      ini 复制代码
      bash
      listen_addresses = '*'  # 允许所有IP访问
      port = 5432             # 默认端口
      shared_buffers = 4GB    # 内存优化(根据服务器配置调整)
      max_connections = 200   # 最大连接数
    • pg_hba.conf

      python 复制代码
      bash
      # 允许本地连接
      local   all             all                                     trust
      # 允许远程连接(需配合防火墙)
      host    all             all             0.0.0.0/0               scram-sha-256

四、安全加固

  1. 设置密码

    sql 复制代码
    bash
    sudo -u postgres psql
    ALTER USER postgres WITH PASSWORD 'YourSecurePassword123!';
  2. 防火墙配置

    css 复制代码
    bash
    sudo firewall-cmd --permanent --add-port=5432/tcp
    sudo firewall-cmd --reload

五、高级操作

  1. 创建数据库与用户

    sql 复制代码
    sql
    CREATE DATABASE mydb;
    CREATE USER myuser WITH PASSWORD 'UserPass456!';
    GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
  2. 备份与恢复

    • 全量备份

      lua 复制代码
      bash
      pg_dump -U postgres -Fc mydb > mydb.dump
    • 恢复数据库

      lua 复制代码
      bash
      pg_restore -d mydb mydb.dump

六、扩展方案(可选)

  1. 编译安装PostgreSQL 17

    bash 复制代码
    bash
    sudo dnf install meson ninja-build openssl-devel
    git clone https://github.com/postgresql/postgresql.git
    meson setup build --prefix=/opt/pgsql17 -Dssl=openssl
    ninja -C build
    sudo ninja -C build install
  2. PostGIS扩展

    less 复制代码
    bash
    sudo dnf install postgis32_16  # 安装地理空间扩展[2](@ref)
    psql -c "CREATE EXTENSION postgis;" mygisdb

常见问题排查

  • GPG签名错误:重新导入仓库密钥

    arduino 复制代码
    bash
    sudo rpm --import https://www.postgresql.org/media/keys/ACCC4CF8.asc
  • 端口冲突 :检查systemctl status postgresql-16服务状态

  • 权限问题:确保数据目录权限正确

    bash 复制代码
    bash
    sudo chmod 700 -R /var/lib/pgsql/16/data

通过本文指南,您可以在Rocky Linux系统上快速部署安全可靠的PostgreSQL数据库环境。建议生产环境使用PostgreSQL 16 版本,并定期通过dnf update进行安全更新

。如需最新特性,可参考PostgreSQL官方文档进行编译安装。

相关推荐
uwvwko32 分钟前
ctfhow——web入门214~218(时间盲注开始)
前端·数据库·mysql·ctf
柯34943 分钟前
Redis的过期删除策略和内存淘汰策略
数据库·redis·lfu·lru
Tiger_shl1 小时前
【Python语言基础】24、并发编程
java·数据库·python
0509151 小时前
测试基础笔记第十一天
java·数据库·笔记
A charmer1 小时前
【MySQL】数据库基础
数据库·mysql
pjx9872 小时前
应用的“体检”与“换装”:精通Spring Boot配置管理与Actuator监控
数据库·spring boot·oracle
松树戈2 小时前
PostgreSQL 分区表——范围分区SQL实践
数据库·sql·postgresql
bing_1582 小时前
Redis 的单线程模型对微服务意味着什么?需要注意哪些潜在瓶颈?
数据库·redis·微服务
wangzhongyudie2 小时前
SQL实战:01之行转列实现
数据库·sql
斗鹰一余洛晟2 小时前
工作中sql总结
数据库·sql