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

相关推荐
Channing Lewis5 分钟前
sql server如何创建表导入excel的数据
数据库·oracle·excel
秃头摸鱼侠5 分钟前
MySQL安装与配置
数据库·mysql·adb
UGOTNOSHOT10 分钟前
每日八股文6.3
数据库·sql
行云流水行云流水34 分钟前
数据库、数据仓库、数据中台、数据湖相关概念
数据库·数据仓库
John Song36 分钟前
Redis 集群批量删除key报错 CROSSSLOT Keys in request don‘t hash to the same slot
数据库·redis·哈希算法
IvanCodes1 小时前
七、Sqoop Job:简化与自动化数据迁移任务及免密执行
大数据·数据库·hadoop·sqoop
tonexuan1 小时前
MySQL 8.0 绿色版安装和配置过程
数据库·mysql
JohnYan1 小时前
工作笔记- 记一次MySQL数据移植表空间错误排除
数据库·后端·mysql
我最厉害。,。2 小时前
Windows权限提升篇&数据库篇&MYSQL&MSSQL&ORACLE&自动化项目
数据库·mysql·sqlserver
远方16092 小时前
20-Oracle 23 ai free Database Sharding-特性验证
数据库·人工智能·oracle