Rocky Linux 安装 PostgreSQL
一、概要
1. 环境
(1) Rocky Linux 9.1 & PostgreSQL 15.3
(2) Rocky Linux 9.3 & PostgreSQL 16.1
二、安装与配置
1. 安装
(1) 安装仓库
sudo dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm -y
(2) 禁用PostgreSQL模块
sudo dnf -qy module disable postgresql
(3) 安装PostgreSQL 15
sudo dnf install postgresql15-server -y
16
sudo dnf install postgresql16-server -y
sudo dnf install postgresql16-contrib -y
(4) 校验安装结果
psql -V
2. 账户
安装时会自动创建名为postgres的用户,我们需要对其做进一步的配置。
(1) 设置密码
sudo passwd postgres
(2) 切换Linux当前账户,使用刚设置的密码登录
su - postgres
3. 目录
(1) 安装目录:/usr/pgsql-15
(2) 数据目录:/var/lib/pgsql/15/data
4. 配置
(1) 初始化
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
(2) 修改监听地址和端口
a. 切换用户
su - postgres
b. 设置postgresql.conf
vi /var/lib/pgsql/15/data/postgresql.conf
找到以下配置:
解开这两行注释并更新:
listen_addresses = '*' port = 5432
c. 设置pg_hba.conf
vi /var/lib/pgsql/15/data/pg_hba.conf
找到以下配置:
注释掉原有的行,新增以下两行:
host all all 0.0.0.0/0 md5 host all all ::0/0 md5
(3) 服务
sudo systemctl start postgresql-15 sudo systemctl enable postgresql-15 systemctl status postgresql-15
(4) 防火墙
sudo firewall-cmd --permanent --add-port=5432/tcp
或
sudo firewall-cmd --permanent --add-service=postgresql sudo firewall-cmd --reload
5. 数据库账户
(1) 为PostgreSQL数据库用户分配密码
psql
ALTER USER postgres WITH PASSWORD '<密码>';
(2) 测试
a. 在系统用户postgres下,输入
psql
b. 查看所有数据库:
\l
(3) 数据目录权限
sudo chmod 700 -R /var/lib/pgsql/15/data
6. 测试
(1) 打开DBeaver,创建PostgreSQL链接:
(2) 连接数据库
三、备份还原
1. 备份方式
PostgreSQL提供了三种备份方式:
(1) SQL dump
(2) 文件系统备份
(3) 持续归档 (Continuous archiving)
本文介绍前两种方式。
2. SQL dump
参考: https://www.postgresql.org/docs/current/backup-dump.html
3. 文件系统备份
(1) 优势
a. 简单快速,尤其是对大数据库;
b. 除了数据文件,同时备份配置文件;
c. 还原也很简单;
(2) 劣势
a. 必须暂停数据库;
(3) 备份
tar -cf backup.tar /var/lib/pgsql/15/data
(4) 还原
tar -xvf backup.tar -C /var/lib/pgsql/15/data
4. Update
(1) 错误提示
如果运行dnf update过程中出现以下错误:
Error: Failed to download metadata for repo 'pgdg-common': repomd.xml GPG signature verification error: Bad GPG signature
则需要运行:
sudo dnf --disablerepo=* -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
参考官方文档:https://yum.postgresql.org/news/pgdg-rpm-repo-gpg-key-update/
四、参考
1. 官方
https://www.postgresql.org/download/linux/redhat/
https://www.postgresql.org/docs/current/backup.html
https://yum.postgresql.org/news/rhel9-aarch64-postgresql-repo-available/
2. Red Hat
3. 其他
https://www.tecmint.com/install-postgresql-and-pgadmin-rhel-9/
https://www.linuxtechi.com/how-to-install-postgresql-on-rhel/