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

相关推荐
不像程序员的程序媛2 小时前
系统cpu内存负载资源分析
运维·服务器·数据库
Jane Chiu3 小时前
Oracle DBMS_REDEFINITION(在线重定义)
数据库·oracle·分区表
全栈前端老曹3 小时前
【MongoDB】安全与权限管理 —— 用户认证、角色权限、SSL 加密
前端·javascript·数据库·安全·mongodb·nosql·ssl
怕孤单的草丛3 小时前
缓存管理面临的主要问题
java·数据库·缓存
我会尽全力 乐观而坚强4 小时前
MySQL零基础入门(二)
数据库·mysql·adb
kali-Myon5 小时前
某校园门禁系统高危 SQL 注入漏洞挖掘复盘
数据库·sql·安全·web安全
程序员在囧途6 小时前
likeadmin-api API 中转站怎么做统一报价?从 /pricing、/user/balance 到 task_id 回执的落地方法
运维·服务器·数据库·likeadmin-api·api中转站·token计费
龙石数据7 小时前
MySQL 全量同步到 Hive 怎么做?三步配置教程
数据库·hive·mysql·数据治理·数据中台
程序员在囧途8 小时前
likeadmin-api API 算力超市怎么做供应商切换?统一鉴权、task_id 和 callback_url 才能稳交付
java·服务器·数据库·开放api·likeadmin-api·api算力超市