游乐游手机版
首页/AI教程/文章详情

CentOS 7离线安装PostgreSQL 9.6方法

时间:2026-07-09 15:44
在CentOS7离线安装PostgreSQL9 6 24,下载四个版本号一致的rpm包,用rpm-ivh安装。配置环境变量后初始化数据库,systemctl管理服务。开启远程访问需修改postgresql conf的listen_addresses为 * ,并在pg_hba conf添加允许网段。
文章目录

聊这个事,我觉得先从环境准备开始比较顺。操作系统方面,我这边用的是 Centos7,搭配的 PostgreSQL 版本是 9.6.24。安装包可以从官方源获取,需要下载的文件有四个:postgresql96-9.6.24-1PGDG.rhel7.x86_64.rpm、postgresql96-contrib-9.6.24-1PGDG.rhel7.x86_64.rpm、postgresql96-libs-9.6.24-1PGDG.rhel7.x86_64.rpm 以及 postgresql96-server-9.6.24-1PGDG.rhel7.x86_64.rpm。如果要用其他版本,记得这几个包的版本号必须保持一致。

在这里插入图片描述

安装

安装pg服务

把下载好的文件上传到服务器,然后一条命令全部搞定:

rpm -ivh postgresql96-*.rpm

在这里插入图片描述

如果安装过程中提示缺少依赖,别跳过,老老实实去下载对应版本补上。

配置环境变量

为了方便后续操作,可以把 pg 的安装路径加到环境变量里。打开 /etc/profile,在 PATH 后面追加上 /usr/pgsql-9.6/bin 这个路径,多个路径之间用“:”隔开:

vim /etc/profile
export PATH=$PATH:/usr/pgsql-9.6/bin
source /etc/profile
postgres --version

在这里插入图片描述

初始化数据库

接下来进入工作目录去初始化数据库:

cd /usr/pgsql-9.6/bin/
./postgresql96-setup initdb

在这里插入图片描述
在这里插入图片描述

如果已经配好了环境变量,直接在任意目录执行 postgresql96-setup initdb 也行。

pg数据库的配置及使用

启动数据库

安装完并不会自动启动,不过系统已经注册了一个叫 postgresql-9.6 的服务。启动、关闭、重启、查看状态用下面这些命令就行:

systemctl start postgresql-9.6
systemctl stop postgresql-9.6
systemctl restart postgresql-9.6
systemctl status postgresql-9.6

在这里插入图片描述

数据库使用

实际开发中多数情况会用客户端工具操作,这里只简单说一下命令行方式。先切换到 postgres 用户(安装时默认创建的管理员账号),然后进入 psql 交互界面:

su postgres
psql

进入后,输入 ? 可以查看所有命令的帮助信息。几个常用命令:\db 显示所有的表空间,\? 帮助,\q 退出 psql,\c 连接数据库。

在这里插入图片描述

关于执行 SQL 有一个小细节需要注意:pg 有缓冲区概念。输入 \p 可以打印当前查询缓存的内容,\r 重置缓存区,\g 执行缓冲区里的 SQL。当然你也可以直接输入 SQL 语句,以“;”结尾就会立即执行。具体细节上,可以参考命令行的帮助信息。

数据库配置

按照上面的步骤配置并启动后,你会发现客户端工具根本连不上。原因很简单:pg 默认只监听本地端口,并且对主机访问做了限制。想要远程访问,需要改两个地方。

首先,修改端口绑定配置,让它监听所有地址:

cd /var/lib/pgsql/9.6/data/
vim postgresql.conf
# 找到 listen_addresses,放开注释并改为 '*'
listen_addresses = '*'

在这里插入图片描述

改完重启数据库。不过这时候还连不上,因为还缺最后一步——配置远程访问权限。需要接着修改 pg_hba.conf 文件:

cd /var/lib/pgsql/9.6/data/
vim pg_hba.conf
# 添加允许访问的网段,格式为:ip/掩码
host    all    all    192.168.0.0/16    trust

在这里插入图片描述

类型 host 表示远程访问,数据库和用户按实际需求填写,all 代表所有。最后的 trust 是认证方式。pg_hba.conf 文件开头的大段英文注释对这几列有详细说明,值得花几分钟看一下。

改完再重启数据库,远程访问就生效了。到此,一个简单的 pg 安装和配置就完成了,接下来就可以通过客户端工具愉快地探索了。

在这里插入图片描述

附录

附录1:psql命令帮助

以下是一些常用命令的说明,供参考:

? [commands]           显示反斜线命令的帮助
? options              显示 psql 命令行选项的帮助
? variables            显示特殊变量的帮助
\h [名称]              SQL命令语法说明,* 显示全部
\e [FILE] [LINE]       使用外部编辑器编辑查询缓存区
\p                     显示查询缓存区内容
\r                     重置查询缓存区
\s [文件]              显示历史记录或保存到文件
\w 文件                将查询缓存区写入文件
\i 文件                从文件执行命令
\o [文件]              将所有查询结果写入文件
\qecho [字符串]        将字符串写到查询输出流
\d[S+]                 列出表、视图和序列
\d[S+] 名称            描述表、视图、序列或索引
\dt[S+] [PATTERN]      列出表
\dv[S+] [PATTERN]      列出视图
\ds[S+] [PATTERN]      列出序列
\df[antw][S+] [PATTERN] 列出函数
\du[S+] [PATTERN]      列出角色
\l[+] [PATTERN]        列出所有数据库
\c[onnect]             连接到新数据库
\encoding [编码名称]   显示或设定客户端编码
\password [USERNAME]   安全地修改用户密码
\! [命令]              在 shell 中执行命令或启动交互式 shell
\set [名称 [值]]       设定内部变量,无参数则列出全部
\unset 名称            删除内部变量
来源:https://cloud.tencent.com.cn/developer/article/2689633
上一篇日志与监控驱动的可观测性体系建设方法 下一篇Spring Cloud 2023.0.x熔断降级限流Resilience4j+Sentinel
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Claude Code 必知的14个高效工作流,让你的开发效率提升300%
AI教程 · 2026-07-09

Claude Code 必知的14个高效工作流,让你的开发效率提升300%

Claude Code 常用工作流 先分享几项核心判断:Claude Code 真正强大的地方,并非仅仅在于它能编写代码——而是它让“编码”这件事本身变得更加高效且可控。你大概率遇到过这类场景:接手一个陌生项目,花了一整天才能理清架构;线上出现报错,翻遍日志也找不到根本原因;想要重构遗留代码,又担心

阿里云通义AIGC平台完全指南:设计师AI生产力革命
AI教程 · 2026-07-09

阿里云通义AIGC平台完全指南:设计师AI生产力革命

一、写在前面:为什么设计师需要关注AIGC? 如果你还在手动一张一张制作海报、反复修改客户口中“感觉不对”的配色方案、为电商详情页准备几十张不同场景的产品图——那么你一定经历过这些痛点: 创意瓶颈:脑海中有画面,但手绘无法呈现 重复劳动:调整尺寸、更换背景、批量生成变体消耗了大量时间精力 成本焦虑:

零基础毕设代码二次开发:3文件定位法及Vue/Java修改对照表
AI教程 · 2026-07-09

零基础毕设代码二次开发:3文件定位法及Vue/Java修改对照表

每年一到毕业季,计算机专业的同学总会陷入一个共同的怪圈:从 GitHub 上扒下来一套代码,或者用 AI 生成一个项目,看起来挺完整的,可导师一句“加个筛选条件”或“换个页面颜色”,瞬间就懵了——不敢改,不会改,怕改崩。是不是很熟悉? 一、为什么AI生成的毕设代码你 "不敢改 "? 1 1 毕业生的三大

反向海淘订单系统:状态机与分布式事务实战设计
AI教程 · 2026-07-09

反向海淘订单系统:状态机与分布式事务实战设计

先分享一个反直觉的结论:反向海淘订单管理的真正挑战,往往不在于业务逻辑本身,而在于状态流转。一个订单的生命周期拉长到跨国运输,中间涉及的环节多、系统多、参与者多,状态稍有错乱就可能引发连锁事故。Taocarts团队在实践中踩了不少坑,最终沉淀下来的这套状态机与分布式事务方案,成功解决了这一复杂难题。

AI并未抢走程序员饭碗而是更新了编程菜单
AI教程 · 2026-07-09

AI并未抢走程序员饭碗而是更新了编程菜单

AI并未大规模替代程序员,而是改变了职业结构。重复性编码岗位需求下降35%至15%,而AIAgent开发等岗位需求激增187%。开发者焦虑从“被替代”转向“跟不上变化”,60%程序员已使用AI辅助编程。人的核心价值转向架构设计、技术决策和审查AI生成代码,AI技能带来16%薪资溢价。