CentOS7 超详细部署 PostgreSQL15 数据库教程(全程避坑+远程连接+业务账号配置) 📅 发布时间:2026/8/28 5:39:47 👁 浏览次数: CentOS7 超详细部署 PostgreSQL15 数据库教程全程避坑远程连接业务账号配置本文适用于CentOS7.x x86_64系统手把手教你从零部署 PostgreSQL15 数据库包含官方源安装、旧版本源报错修复、初始化配置、开机自启、外网远程连接、防火墙放行、业务账号创建全流程。解决绝大多数新手部署遇到的410 Gone 源失效、初始化命令报错、外网连不上数据库等常见问题步骤严谨可直接用于测试/生产环境。一、环境准备操作系统CentOS 7 系列数据库版本PostgreSQL 15稳定生产版本前置要求服务器可联网、拥有 root 管理员权限二、安装 PostgreSQL 官方 YUM 源CentOS7 系统默认自带的 PostgreSQL 版本极低9.x功能老旧、存在漏洞因此我们直接使用 PostgreSQL 官方适配的 YUM 源安装最新稳定版 PG15。1. 在线安装官方源 RPM 包yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm2. 校验源文件是否安装成功执行以下命令查看生成的 repo 源文件存在文件即代表官方源部署就绪ls -l /etc/yum.repos.d/pgdg-redhat-all.repo小技巧若后续 yum 下载速度极慢、卡顿超时可执行yum clean all清理本地缓存重新拉取资源。三、修复官方源报错核心避坑步骤PostgreSQL 官方源默认开启 PG12、PG13、PG14 历史版本目前这些旧版本官方已下架访问会返回410 Gone错误导致安装报错、依赖拉取失败。我们通过 sed 命令批量关闭旧版本源仅保留可用的 PG15 源一键修复报错# 关闭 PG12 源 sed -i /^\[pgdg12\]/,/^\[/s/enabled1/enabled0/ /etc/yum.repos.d/pgdg-redhat-all.repo # 关闭 PG13 源 sed -i /^\[pgdg13\]/,/^\[/s/enabled1/enabled0/ /etc/yum.repos.d/pgdg-redhat-all.repo # 关闭 PG14 源 sed -i /^\[pgdg14\]/,/^\[/s/enabled0/ /etc/yum.repos.d/pgdg-redhat-all.repo备选方案若担心 sed 命令修改出错可直接放弃官方源更换国内镜像源安装 PG15稳定性同样极佳。生产环境优先推荐上述关闭旧源的方案。四、清理 YUM 缓存 正式安装 PG151. 彻底清理缓存避免旧缓存干扰安装yum clean all rm -rf /var/cache/yum/*2. 安装 PostgreSQL15 服务端客户端全套组件yum install -y postgresql15-server postgresql15等待命令执行完成无报错即代表 PG15 安装成功。五、数据库初始化关键步骤新旧版本区别⚠️重点避坑网上大部分旧教程的postgresql-setup --initdb仅适用于系统自带的 PG9.x 旧版本PG15 新版脚本带版本后缀必须使用专属初始化命令否则会提示文件不存在、命令报错。1. 执行 PG15 专属初始化命令/usr/pgsql-15/bin/postgresql-15-setup initdb出现Initializing database ... OK即为初始化成功自动生成数据目录、配置文件。2. 校验初始化结果查看数据目录下的核心配置文件存在postgresql.conf、pg_hba.conf等文件即代表初始化完整ls /var/lib/pgsql/15/data若提示目录不存在可先查询脚本真实路径ls /usr/pgsql-15/bin/核对命令是否正确。六、配置服务自启并启动数据库配置开机自启避免服务器重启后数据库无法自动运行同时手动启动服务# 启动数据库服务 systemctl start postgresql-15 # 设置开机自启 systemctl enable postgresql-15 # 查看服务运行状态 systemctl status postgresql-15页面显示active (running)绿色状态代表数据库运行正常按q即可退出状态页面。七、配置超级用户密码数据库登录必备PostgreSQL 默认自带超级用户postgres默认无密码需手动设置密码才能本地/远程登录。# 切换至 postgres 系统用户 su - postgres # 进入数据库命令行 psql执行以下 SQL 语句务必修改自定义高强度密码避免弱密码被爆破ALTER USER postgres WITH PASSWORD MyPass123456;执行完成后退出数据库命令行、切回 root 用户\q exit八、开启外网远程访问本地工具/Go项目连接必备默认 PG15 仅支持本地 127.0.0.1 访问外网、本地电脑、项目服务均无法连接需修改两处核心配置。1. 修改监听地址允许所有IP访问编辑主配置文件vim /var/lib/pgsql/15/data/postgresql.conf输入/listen_addresses快速搜索定位将默认配置修改为listen_addresses *按Esc输入:wq保存退出。2. 修改访问鉴权规则放行外网连接编辑权限配置文件vim /var/lib/pgsql/15/data/pg_hba.conf在文件末尾添加两行配置放行 IPv4/IPv6 所有地址的密码登录权限host all all 0.0.0.0/0 md5 host all all ::/0 md5保存退出Esc → :wq。九、服务器防火墙放行5432端口PostgreSQL 默认端口为 5432需在防火墙放行该端口否则外网无法穿透连接。# 永久放行5432端口 firewall-cmd --permanent --add-port5432/tcp # 重载防火墙规则生效 firewall-cmd --reload # 验证端口是否放行成功 firewall-cmd --list-ports云服务器重点提醒华为云/阿里云/腾讯云通用仅服务器内部防火墙放行不够必须登录云平台控制台在安全组入方向规则手动放行 TCP 5432 端口否则外网始终无法连接数据库服务器本地访问不受安全组影响。十、重启数据库让所有配置生效systemctl restart postgresql-15十一、本地连接测试验证部署完整性执行以下命令本地登录数据库输入刚刚设置的 postgres 密码可正常进入交互界面即代表全部部署完成psql -U postgres -h 127.0.0.1 -p 5432测试完成后输入\q退出即可。十二、生产环境优化创建业务独立账号重点生产禁忌Go项目、业务程序禁止直接使用 postgres 超级账号连接数据库权限过高存在极大安全风险建议单独创建业务用户和专属数据库。1. 创建业务用户、数据库并授权su - postgres psql执行以下 SQL可自行修改用户名、密码、数据库名-- 创建业务用户 CREATE USER gobiz WITH PASSWORD GoBiz456789; -- 创建UTF8编码业务数据库归属上述用户 CREATE DATABASE go_db OWNER gobiz ENCODING UTF8; -- 赋予用户数据库全部操作权限 GRANT ALL PRIVILEGES ON DATABASE go_db TO gobiz;执行完成后\q退出、exit切回 root 用户。2. Go 项目数据库连接串示例直接替换服务器公网IP、自定义账号密码即可使用connStr : host服务器公网IP port5432 usergobiz passwordGoBiz456789 dbnamego_db sslmodedisable十三、常见问题总结yum安装报410 Gone已通过关闭 PG12/13/14 旧版本源解决清理缓存重装即可初始化命令报错确认使用带 -15 后缀的新版初始化脚本摒弃旧版通用命令外网连不上数据库检查监听地址、pg_hba权限、服务器防火墙、云平台安全组四重配置密码登录失败确认修改配置后重启数据库密码无特殊字符输入错误