CentOS 7离线安装PostgreSQL 9.6方法
在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 名称 删除内部变量
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
Claude Code 必知的14个高效工作流,让你的开发效率提升300%
Claude Code 常用工作流 先分享几项核心判断:Claude Code 真正强大的地方,并非仅仅在于它能编写代码——而是它让“编码”这件事本身变得更加高效且可控。你大概率遇到过这类场景:接手一个陌生项目,花了一整天才能理清架构;线上出现报错,翻遍日志也找不到根本原因;想要重构遗留代码,又担心
阿里云通义AIGC平台完全指南:设计师AI生产力革命
一、写在前面:为什么设计师需要关注AIGC? 如果你还在手动一张一张制作海报、反复修改客户口中“感觉不对”的配色方案、为电商详情页准备几十张不同场景的产品图——那么你一定经历过这些痛点: 创意瓶颈:脑海中有画面,但手绘无法呈现 重复劳动:调整尺寸、更换背景、批量生成变体消耗了大量时间精力 成本焦虑:
零基础毕设代码二次开发:3文件定位法及Vue/Java修改对照表
每年一到毕业季,计算机专业的同学总会陷入一个共同的怪圈:从 GitHub 上扒下来一套代码,或者用 AI 生成一个项目,看起来挺完整的,可导师一句“加个筛选条件”或“换个页面颜色”,瞬间就懵了——不敢改,不会改,怕改崩。是不是很熟悉? 一、为什么AI生成的毕设代码你 "不敢改 "? 1 1 毕业生的三大
反向海淘订单系统:状态机与分布式事务实战设计
先分享一个反直觉的结论:反向海淘订单管理的真正挑战,往往不在于业务逻辑本身,而在于状态流转。一个订单的生命周期拉长到跨国运输,中间涉及的环节多、系统多、参与者多,状态稍有错乱就可能引发连锁事故。Taocarts团队在实践中踩了不少坑,最终沉淀下来的这套状态机与分布式事务方案,成功解决了这一复杂难题。
AI并未抢走程序员饭碗而是更新了编程菜单
AI并未大规模替代程序员,而是改变了职业结构。重复性编码岗位需求下降35%至15%,而AIAgent开发等岗位需求激增187%。开发者焦虑从“被替代”转向“跟不上变化”,60%程序员已使用AI辅助编程。人的核心价值转向架构设计、技术决策和审查AI生成代码,AI技能带来16%薪资溢价。
- 热门数据榜
相关攻略
2026-07-09 17:49
2026-07-09 16:48
2026-07-09 16:46
2026-07-09 16:46
2026-07-09 16:46
2026-07-09 16:46
2026-07-09 15:45
2026-07-09 15:45
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

