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官方文档进行编译安装。

相关推荐
Jayyih17 小时前
嵌入式系统学习Day35(sqlite3数据库)
数据库·学习·sqlite
得意霄尽欢19 小时前
Redis之底层数据结构
数据结构·数据库·redis
hsjkdhs20 小时前
MySQL 数据类型与运算符详解
数据库·mysql
爱吃烤鸡翅的酸菜鱼21 小时前
【Redis】常用数据结构之Hash篇:从常用命令到使用场景详解
数据结构·数据库·redis·后端·缓存·哈希算法
李少兄21 小时前
IntelliJ IDEA 启动项目时配置端口指南
数据库·sql·intellij-idea
NineData21 小时前
NineData云原生智能数据管理平台新功能发布|2025年8月版
数据库·mongodb·云原生·数据库管理工具·ninedata·数据库迁移·数据复制
白云如幻21 小时前
【Java】QBC检索和本地SQL检索
java·数据库·sql
勘察加熊人1 天前
python将pdf转txt,并切割ai
数据库·python·pdf
不良人天码星1 天前
Redis单线程模型为什么快?
数据库·redis·缓存
RestCloud1 天前
ETL 不只是数据搬运工:如何实现智能转换与清洗?
数据库·api