平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“RockyLinux9.5部署PostgreSQL的实现方法步骤”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。
在这个场景下,介绍两种部署方式,一直接部署在 linux 服务器上,二先安装 docker,随后借助 docker 部署
(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
(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
(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
(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
# 进入 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
# 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
# 停止 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-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
docker pull postgres:16
方式一:采用 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
# 查看容器状态
docker ps
# 查看日志
docker logs postgresql
# 进入容器,输入密码,检查是否能登录
docker exec -it postgresql psql -U postgres -W
# 进入容器内的PostgreSQL命令行:
docker exec -it postgresql psql -U postgres
# 执行密码修改命令:
ALTER USER postgres WITH PASSWORD '新密码';
# 输入q退出
到此这篇关于RockyLinux9.5部署PostgreSQL的实现步骤的文章就介绍到这了,更多相关RockyLinux部署PostgreSQL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多兼容脚本之家!
暗黑2重制版凤凰火蛇法师BD如何加点-暗黑2重制版凤凰火蛇法师加点攻略
tp路由器ac1900和ac1200区别详解(tp路由器ac1900和ac1200有什么区别)
明日方舟终末地血狼破军获取的操作思路与注意点
绘梦日记钻石能买什么-绘梦日记钻石可以用来购买什么
暖暖庄园破解版无限体力下载—最新免费无限钻石体力版
tp路由器ac1900和ac2100哪个好(tp路由器ac1900和ac2100选择推荐)