CentOS 7 安装 PostgreSQL 13(国内镜像 + 远程访问)完整实践教程

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):

conf 复制代码
host 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
  • 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
  • 防火墙

完。

相关推荐
青城山下————2 小时前
CentOS 7(3.10 内核)成功安装 MySQL 5.7 全流程实践(附问题总结)
linux·mysql·centos
ycjunhua2 小时前
windows 安装PostgreSQL 数据库
数据库·windows·postgresql
Mr.徐大人ゞ2 小时前
2-6.pg特性功能之系列规则介绍和使用
postgresql
卡比巴拉—林2 小时前
Linux SSH免密登录配置(双向免密)
linux·运维·ssh
环流_3 小时前
【多线程初识】
linux·运维·服务器
CAAS_IFR_zp3 小时前
vConTACT3: 机器学习实现可扩展和系统的病毒层级分类
linux·运维·服务器
一个人旅程~3 小时前
Linux Mint(Ubuntu)如何在没有网卡驱动情况下利用手机上网安装旧电脑网卡驱动程序指导书
linux·windows·经验分享·电脑
Lugas Luo3 小时前
DVR 存储工具深度分析报告 (测试与产品视角)
linux·嵌入式硬件·测试工具
杨云龙UP3 小时前
ODA-Oracle实践记录:通过Navicat导出导入表CSV文件并清理重复数据,处理OA待办延迟刷新问题_20260416
linux·运维·服务器·数据库·sql·mysql·oracle