一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

RockyLinux9.5部署PostgreSQL的实现方式步骤实用指南

时间:2026-09-09 08:18:01 编辑:袖梨 来源:一聚教程网

平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“RockyLinux9.5部署PostgreSQL的实现方法步骤”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。

在这个场景下,介绍两种部署方式,一直接部署在 linux 服务器上,二先安装 docker,随后借助 docker 部署

一、直接部署在 Linux 服务器

1、准备工作

(1)更新系统软件包

sudo dnf update -y

(2)关闭防火墙

# 测试环境
systemctl stop firewalld
systemctl disable firewalld

# 查看防火墙状态
firewall-cmd --state

# 生产环境建议配置防火墙规则:
# 开放 PostgreSQL 端口(默认 5432):
sudo firewall-cmd --permanent --add-port=5432/tcp
sudo firewall-cmd --reload

2、安装 PostgreSQL

方法 1:借助 RockyLinux 默认仓库安装

(1)安装 PostgreSQL 服务器:

dnf install -y postgresql-server

(2)初始化数据库

sudo postgresql-setup --initdb

(3)启动 PostgreSQL 服务并设置开机自启:

sudo systemctl enable postgresql
sudo systemctl start postgresql

# 检查服务状态
sudo systemctl status postgresql

方法 2:借助 PostgreSQL 官方仓库安装(建议)

(1)添加 PostgreSQL Yum 仓库,下面两个版本任选一个

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

(2)禁用内置的 PostgreSQL 模块

sudo dnf -qy module disable postgresql

(3) 安装 PostgreSQL,版本 16

sudo dnf install -y postgresql16-server

(4)初始化数据库

sudo /usr/pgsql-16/bin/postgresql-16-setup initdb

(5)启动 PostgreSQL 服务并设置开机自启:

sudo systemctl enable postgresql-16
sudo systemctl start postgresql-16

# 检查服务状态
sudo systemctl status postgresql-16

3、基本设置

(1)设置 PostgreSQL 用户密码

# 进入 psql
sudo -u postgres psql

# 修改密码
ALTER USER postgres WITH PASSWORD '你的密码';

# 输入q退出

(2)设置远程访问(可选)

结合项目来看,编辑 /var/lib/pgsql/16/data/postgresql.conf(借助默认仓库安装路径是:/var/lib/pgsql/data/postgresql.conf),取消注释同时修改:

listen_addresses = '*'  # 允许所有IP访问
port = 5432 # 默认端口

结合项目来看,编辑 /var/lib/pgsql/16/data/pg_hba.conf(借助默认仓库安装路径是:/var/lib/pgsql/data/pg_hba.conf),添加或修改以下行(根据需求调整)

# 允许所有IP通过密码访问
host all all 0.0.0.0/0 md5

(3)重启 PostgreSQL 服务使设置生效

# 通过 RockyLinux 默认仓库安装
sudo systemctl restart postgresql

# 通过 PostgreSQL 官方仓库安装,如安装不同版本,自行调整
sudo systemctl restart postgresql-16

4、常用管理命令

# 进入 psql
sudo -u postgres psql

# 创建数据库
CREATE DATABASE testdb;

# 创建用户:
CREATE USER username WITH PASSWORD 'password';
# 授予权限:
GRANT ALL PRIVILEGES ON DATABASE dbname TO username;

# 查看所有数据库
l

# 切换到新数据库
c testdb

# 查看当前数据库名称
SELECT current_database();

# 退出
q

# 查看服务状态:
sudo systemctl status postgresql-16

# 停止服务:
sudo systemctl stop postgresql-16

# 启动服务:
sudo systemctl start postgresql-16

# 重启服务:
sudo systemctl restart postgresql-16

# 查看日志:
sudo journalctl -u postgresql-16

5、备份与恢复

# username 一般是 postgres,根据情况自行修改

# 备份单个数据库:
pg_dump -U username -d dbname -f backup.sql
# 恢复单个数据库
psql -U username -d dbname -f backup.sql

# 备份所有数据库:
pg_dumpall -U username -f alldbs.sql
# 恢复所有数据库
psql -U postgres -f alldbs.sql

6、重置忘记的 postgres 用户密码

# 停止 PostgreSQL 服务:
sudo systemctl stop postgresql-16

# 进入单用户模式:
sudo -u postgres /usr/pgsql-16/bin/postgres --single -D /var/lib/pgsql/16/data

# 在提示符下执行:
ALTER USER postgres WITH PASSWORD '新密码';

# 然后按 Ctrl+D 退出

# 正常启动服务:
sudo systemctl start postgresql-16

二、采用 docker 部署

1、安装 docker

# 添加阿里云docker-ce仓库
dnf config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 列出当前系统中所有可安装的 docker-ce 版本,并按照版本号从高到低进行排序,同时显示重复的版本。
dnf list docker-ce --showduplicates | sort -r
# 安装最新版本 docker-ce,也可以指定版本安装(dnf install -y docker-ce-3:28.1.1-1.el9)
dnf install -y docker-ce
# 启用Docker Cgroup用于限制进程的资源使用量,如CPU、内存资源
# 创建目录,存放 docker 的配置文件
mkdir -p /etc/docker
# 创建并写入 /etc/docker/daemon.json 文件,设置 Docker 使用 systemd 作为 Cgroup 驱动
# registry-mirrors 配置:docker 镜像加速I器的地址列表。
cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "registry-mirrors": [
    "https://docker.m.daocloud.io"
  ]
}
EOF
# 设置 docker 开机自启,并启动 docker
systemctl enable docker --now

2、拉取 PostgreSQL 镜像

docker pull postgres:16

3、运行 PostgreSQL 容器

方式一:采用 docker run

docker run -d 
  --name postgresql
  -p 5432:5432
  -e POSTGRES_USER=postgres
  -e POSTGRES_PASSWORD=qwe123
  -e POSTGRES_DB=postgres
  -v /data/postgresql/data:/var/lib/postgresql/data
  --restart=unless-stopped
  postgres:16

方式二:采用 yaml 启动,建议这种

(1) 根目录下新建 postgresql.yaml 文件,内容如下所示:

version: '3.8'

services:
  postgresql:
    image: postgres:16
    container_name: postgresql
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: your_password
      POSTGRES_DB: postgres
    volumes:
      - /data/postgresql/data:/var/lib/postgresql/data
    restart: unless-stopped

(2) 启动服务

docker compose -f postgresql.yaml up -d

4、验证安装

# 查看容器状态
docker ps

# 查看日志
docker logs postgresql

# 进入容器,输入密码,检查是否能登录
docker exec -it postgresql psql -U postgres -W

5、容器内重置 PostgreSQL 密码

# 进入容器内的PostgreSQL命令行:
docker exec -it postgresql psql -U postgres

# 执行密码修改命令:
ALTER USER postgres WITH PASSWORD '新密码';

# 输入q退出

到此这篇关于RockyLinux9.5部署PostgreSQL的实现步骤的文章就介绍到这了,更多相关RockyLinux部署PostgreSQL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多兼容脚本之家!

您可能感兴趣的文章:
  • docker更快部署postgresql的完整步骤记录
  • Docker 部署 PostgreSQL数据库的两种方式
  • Docker部署PostgreSQL数据库及操作方法详解
  • Docker PostgreSQL容器化部署方式
  • Docker Compose安装部署PostgreSQL数据库的实现步骤
  • 在docker上部署postgreSQL主从的超详细步骤
  • PostgreSQL部署逻辑复制过程详解
  • 一步步教你用docker部署postgreSQL数据库
  • PostgreSQL数据库迁移部署实战教程
  • postgresql 12版本搭建及主备部署操作
  • postgresql数据库安装部署搭建主从节点的详细过程(业务库)

热门栏目