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

完。

相关推荐
杨云龙UP1 小时前
Oracle RAC / ODA 生产环境指定 PDB 启动 SOP
linux·运维·数据库·oracle
Shingmc32 小时前
【Linux】多路转接之select
linux·网络
xhaxy2 小时前
pgsql下载安装(CentOS7,pgsql14)
postgresql
木古古183 小时前
搞一个高效的c/c++开发环境,工具VIm+自研vim插件+Shell脚本
linux·编辑器·vim
茫忙然4 小时前
U 盘搭建免驱 Linux 便携系统教程
linux·服务器
一起逃去看海吧5 小时前
dify-03
java·linux·开发语言
fengyehongWorld5 小时前
Linux 根据端口进行的相关查询
linux
lihao lihao5 小时前
linux匿名管道
linux·运维·服务器
うちは止水5 小时前
weston出图调试
linux·wayland·weston
STDD5 小时前
Farming Simulator 25(模拟农场 25) Linux 专服搭建完全指南
linux·运维·javascript