介绍两种部署方式,一直接部署在 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 镜像加速器的地址列表。
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内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论