CentOS 7 安装 PostgreSQL 13(国内镜像 + 远程访问)完整实践教程
本文基于一次 真实服务器环境 的完整实战,记录了在 CentOS 7(已 EOL) 系统中,
使用 国内镜像源 成功安装 PostgreSQL 13,并完成 远程连接配置 的全过程。
适合人群:
- 仍在使用 CentOS 7 的服务器
- PostgreSQL 官方仓库 410 Gone 无法使用
- 希望用 Navicat / Java 远程连接 PostgreSQL
一、系统环境说明
bash
uname -a
text
Linux bogon 3.10.0-327.el7.x86_64 x86_64 GNU/Linux
- 操作系统:CentOS 7.x(Vault 源)
- PostgreSQL 版本:13
- 安装方式:yum(国内镜像)
- 服务管理:systemd
二、背景说明:为什么不能直接使用官方仓库
PostgreSQL 官方已停止对 RHEL / CentOS 7 的 yum 仓库支持,
访问官方仓库会出现如下错误:
text
HTTPS Error 410 - Gone
解决方式:
使用国内镜像(如阿里云、华为云)继续 yum 安装
三、配置 PostgreSQL 13 国内镜像(阿里云)
1️⃣ 创建 repo 文件
bash
vim /etc/yum.repos.d/pgdg13-aliyun.repo
2️⃣ 写入以下内容(完整复制)
ini
[pgdg13]
name=PostgreSQL 13 for RHEL/CentOS 7 - Aliyun Mirror
baseurl=https://mirrors.aliyun.com/postgresql/repos/yum/13/redhat/rhel-7-x86_64/
enabled=1
gpgcheck=0
说明:
- 阿里云镜像完整保留了 PostgreSQL 13 for RHEL7 的 repodata
- gpgcheck 关闭,适用于老系统 / 内网环境
3️⃣ 生成 yum 缓存
bash
yum clean all
yum makecache
确认看到:
text
pgdg13/x86_64
四、安装 PostgreSQL 13
bash
yum install -y postgresql13 postgresql13-server
安装完成后:
- 程序目录:
/usr/pgsql-13/ - 数据目录:
/var/lib/pgsql/13/data - 服务名:
postgresql-13
五、初始化数据库(必须执行)
bash
/usr/pgsql-13/bin/postgresql-13-setup initdb
六、启动 PostgreSQL 并设为开机自启
bash
systemctl start postgresql-13
systemctl enable postgresql-13
systemctl status postgresql-13
确认:
text
Active: active (running)
七、创建数据库和用户(推荐做法)
1️⃣ 切换到 postgres 用户
bash
su - postgres
2️⃣ 进入 psql
bash
psql
3️⃣ 创建数据库
sql
CREATE DATABASE app_db;
4️⃣ 创建用户并设置密码
sql
CREATE USER app_user WITH PASSWORD 'AppUser@123';
5️⃣ 授权
sql
GRANT ALL PRIVILEGES ON DATABASE app_db TO app_user;
退出:
sql
\q
exit
八、配置 PostgreSQL 远程访问(关键)
1️⃣ 修改监听地址
bash
vim /var/lib/pgsql/13/data/postgresql.conf
找到并修改:
conf
#listen_addresses = 'localhost'
改为:
conf
listen_addresses = '*'
2️⃣ 配置访问控制规则
bash
vim /var/lib/pgsql/13/data/pg_hba.conf
在文件末尾添加一行:
conf
host all all 0.0.0.0/0 md5
✅ 更安全写法(限制 IP):
confhost all all 10.10.200.1/32 md5
3️⃣ 重启 PostgreSQL
bash
systemctl restart postgresql-13
九、开放防火墙端口(5432)
bash
firewall-cmd --permanent --add-port=5432/tcp
firewall-cmd --reload
十、远程连接验证
✅ 命令行测试
bash
psql -h 服务器IP -p 5432 -U app_user -d app_db
✅ Navicat 连接参数
- Host:服务器IP
- Port:5432
- User:app_user
- Password:AppUser@123
- Database:app_db
十一、Java / Spring Boot 示例配置
yaml
spring:
datasource:
url: jdbc:postgresql://服务器IP:5432/app_db
username: app_user
password: AppUser@123
driver-class-name: org.postgresql.Driver
十二、常见问题总结
❌ repomd.xml 410 Gone
- 官方仓库已下线
- 使用国内镜像解决
❌ 远程连不上
- 检查 listen_addresses
- 检查 pg_hba.conf
- 检查防火墙
总结
✅ CentOS 7 上安装 PostgreSQL 13 的最佳方式:
- 使用国内镜像
- 关闭 gpg 校验
- systemd 管理
✅ 远程访问只认三点:
- 监听地址
- pg_hba.conf
- 防火墙
完。