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
  • 防火墙

完。

相关推荐
ascarl201012 小时前
Linux.do 帖子整理:AI 调用 Chrome DevTools 调试前端页面
linux·前端·人工智能
Slow菜鸟12 小时前
Docker 学习篇(三)| Docker安装指南(Linux版)
linux·学习·docker
liuluyang53012 小时前
linux kernel CONFIG_KCMP解析
linux·运维·服务器
斯班奇的好朋友阿法法14 小时前
RHEL 7.3 离线安装 RPM 包
linux
LuDvei14 小时前
ubuntu环境下qt打包
linux·数据库·qt·ubuntu
逸Y 仙X14 小时前
文章二十六:ElasticSearch 异步查询执行重度任务
java·大数据·linux·运维·elasticsearch·搜索引擎·全文检索
曦夜日长14 小时前
Linux系统篇,指令(四):shell命令及运行原理
linux·运维·服务器
aningx15 小时前
NatPierce & Sunshine systemctl 服务配置指南
linux
消失的旧时光-194315 小时前
为什么 Linux / Android 系统里全是 struct + 函数指针?—— 一篇讲透 C 语言如何实现面向对象(OOP)
android·linux·c语言
一拳一个娘娘腔15 小时前
入门必看:CVE-2026-31431(Copy Fail)漏洞全解析,700字节脚本拿下Root权限
linux·安全