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

完。

相关推荐
HLC++16 小时前
Linux的进程间通信
android·linux·服务器
二宝哥17 小时前
CentOS 7.9 系统下 Redis 5.0.4 单机安装与源码编译安装指南
redis·centos
华清远见IT开放实验室17 小时前
实验室建设案例 | 石家庄科技信息职业学院嵌入式实验室——从底层硬件到系统应用,一所应用型高校的嵌入式人才培养这样落地
linux·arm开发·stm32·嵌入式硬件·高校·实验室建设
groundhappy20 小时前
idalib安装和codex ida-mcp配置
linux·开发语言·python
通信小小昕20 小时前
Ubuntu 26.04 中文输入法安装
linux·运维·ubuntu
张小姐的猫1 天前
【Linux】网络编程 —— HTTP协议(上)
linux·运维·服务器·网络·http·单例模式·策略模式
栩栩云生1 天前
AI 写代码犯的错,早被写进了错题集
linux·安全·ai编程
imc.111 天前
linux基础IO
linux·运维·服务器
BelongPanda1 天前
Linux Nginx 纯手动 Let‘s Encrypt 泛域名证书配置教程
linux·nginx
酷可达拉斯1 天前
Linux操作系统-shell编程(0)
linux·运维·服务器·python·云计算