首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >[postgres] CentOS7离线安装Postgres9.6

[postgres] CentOS7离线安装Postgres9.6

作者头像
master336
发布2026-06-15 19:19:30
发布2026-06-15 19:19:30
1450
举报
文章目录
  • 环境
  • 安装
    • 安装pg服务
    • 配置环境变量
    • 初始化数据库
  • pg数据库的配置及使用
    • 启动数据库
    • 数据库使用
    • 数据库配置
  • 附录
    • 附录1:psql命令帮助

环境

操作系统: Centos7 Postgresql: postgresql96-9.6.24 安装包下载地址: https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/ 下载如下文件: 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服务

上传到Centos7服务器上,执行如下命令全部安装

代码语言:javascript
复制
 rpm -ivh postgresql96-*.rpm
在这里插入图片描述
在这里插入图片描述

此过程如果出错,提示缺少依赖,应去下载对应版本依赖,不要忽略

默认安装位置:/usr/pgsql-9.6/bin/ 默认数据文件配置: /var/lib/pgsql/9.6/

配置环境变量

此步骤主要是为了方便执行pg数据库的相关命令,修改/etc/profile,PATH种添加pg安装位置

代码语言:javascript
复制
#编辑/etc/profile
 vim /etc/profile
 #添加/修改如下内容,PATH后面追加/usr/pgsql-9.6/bin这个路径,使用":"分割
 export PATH=$PATH:/usr/pgsql-9.6/bin
 #生效修改
source /etc/profile
#验证pg版本信息
postgres --version
在这里插入图片描述
在这里插入图片描述

初始化数据库

切换到工作目录(如果上一步配置了环境变量可以不用切)

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
#却换到安装目录
cd /usr/pgsql-9.6/bin/
#执行初始化 (注意如果是通过环境变量之后任意目录执行,应直接执行postgresql96-setup initdb 即可)
./postgresql96-setup initdb
在这里插入图片描述
在这里插入图片描述

pg数据库的配置及使用

启动数据库

安装完毕后不会自动启动,安装及初始化完毕后会向系统注册一个postgresql-9.6的服务

代码语言:javascript
复制
#启动
systemctl start  postgresql-9.6
#关闭
systemctl stop  postgresql-9.6
#重启
systemctl restart  postgresql-9.6
#状态查看
systemctl status  postgresql-9.6
在这里插入图片描述
在这里插入图片描述

数据库使用

多数情况使用客户端工具操作,这里只简单说明下通过命令行的操作

代码语言:javascript
复制
#切换到pg用户 postgres为安装过程默认创建的,用于管理pg数据库的用户
su postgres
#进psql
psql
#执行命令 (参考附录1 pg命令行帮助,或直接输入\?将自动打印帮助信息) ;
#\db 显示所有的表空间 
#\? 帮助
#\q 退出psql
#\c 连接数据库
\db
在这里插入图片描述
在这里插入图片描述

这里重点说明下如何执行sql: pg执行sql有缓冲区的概念,输入\p可打印当前查询缓存;\r 可重置缓存区内容;\g执行缓存区sql;当然也可以编辑缓存区内容/文件 直接输入sql以“;”结尾即触发执行。

细节问题可参考命令行

数据库配置

如上配置及启动数据库后,是无法通过客户端等非本地工具访问的,原因为pg默认监听本地端口和限制host的访问,这里需要做如下修改:

以下修改均在/var/lib/pgsql/9.6/data/ 数据目录下完成

  1. 修改服务端口绑定配置,以支持外网(相对于本地而言)访问
代码语言:javascript
复制
#切换配置文件目录
cd /var/lib/pgsql/9.6/data/
#编辑配置文件
vim postgresql.conf
#放开监听配置,并修改为“*”  下配图中有说明
listen_addresses = '*'
在这里插入图片描述
在这里插入图片描述

重启数据库即生效,此时虽然修改了绑定ip,但尚未对客户端主机进行赋权,所以还不能直接登录使用,需要继续修改: 2. 修改 host配置,允许远程登录权限

代码语言:javascript
复制
#切换配置文件目录
cd /var/lib/pgsql/9.6/data/
#编辑配置文件
vim pg_hba.conf
#添加允许访问的网络地址,ip范围格式:ip/掩码 (具体配置含义,参考下图)
host    all             all             192.168.0.0/16          trust
#因为允许的是“远程”访问,所以类型是host,
#数据库和用户可根据实际要求填写,all代表所有,
#method代表认证方式
#(pg_hba.conf文件开头大篇幅的英文注释即为这五列的解释,可以快速了解下)
在这里插入图片描述
在这里插入图片描述

重启数据库即生效

如上,即完成了简单的安装及配置,可通过客户端愉快的继续研究了

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

附录

附录1:psql命令帮助

代码语言:javascript
复制
输入 "help" 来获取帮助信息.

postgres=# s\?
一般性
  \copyright            显示PostgreSQL的使用和发行许可条款
  \errverbose            以最冗长的形式显示最近的错误消息
  \g [文件] or;     执行查询 (并把结果写入文件或 |管道)
  \gexec                 执行策略,然后执行其结果中的每个值
  \gset [PREFIX]     执行查询并把结果存到psql变量中
  \q             退出 psql
  \crosstabview [COLUMNS] 执行查询并且以交叉表显示结果
  \watch [SEC]          每隔SEC秒执行一次查询

帮助
  \? [commands]          显示反斜线命令的帮助
  \? options             显示 psql 命令行选项的帮助
  \? variables           显示特殊变量的帮助
  \h [名称]          SQL命令语法上的说明,用*显示全部命令的语法说明

查询缓存区
  \e [FILE] [LINE]        使用外部编辑器编辑查询缓存区(或文件)
  \ef [FUNCNAME [LINE]]   使用外部编辑器编辑函数定义
  \ev [VIEWNAME [LINE]]  用外部编辑器编辑视图定义
  \p                    显示查询缓存区的内容
  \r                    重置(清除)查询缓存区
  \s [文件]        显示历史记录或将历史记录保存在文件中
  \w 文件          将查询缓存区的内容写入文件

输入/输出
  \copy ...             执行 SQL COPY,将数据流发送到客户端主机
  \echo [字符串]       将字符串写到标准输出
  \i 文件          从文件中执行命令
  \ir FILE               与 \i类似, 但是相对于当前脚本的位置
  \o [文件]        将全部查询结果写入文件或 |管道
  \qecho [字符串]      将字符串写到查询输出串流(参考 \o)

资讯性
  (选项: S = 显示系统对象, + = 其余的详细信息)
  \d[S+]          列出表,视图和序列
  \d[S+]  名称      描述表,视图,序列,或索引
  \da[S]  [模式]    列出聚合函数
  \dA[+]  [PATTERN]      list access methods
  \db[+]  [模式]     列出表空间
  \dc[S+] [PATTERN]      列表转换
  \dC[+]  [PATTERN]      列出类型强制转换
  \dd[S]  [PATTERN]      显示没有在别处显示的对象描述
  \ddp     [模式]    列出默认权限
  \dD[S+] [PATTERN]      列出共同值域
  \det[+] [PATTERN]      列出引用表
  \des[+] [模式]    列出外部服务器
  \deu[+] [模式]     列出用户映射
 \dew[+] [模式]       列出外部数据封装器
   \df[antw][S+] [模式]    列出[只包括 聚合/常规/触发器/窗口]函数
  \dF[+]  [模式]   列出文本搜索配置
  \dFd[+] [模式]     列出文本搜索字典
 \dFp[+] [模式]     列出文本搜索解析器
  \dFt[+] [模式]   列出文本搜索模版
  \dg[S+] [PATTERN]      列出角色
 \di[S+] [模式]  列出索引
  \dl                   列出大对象, 功能与\lo_list相同
  \dL[S+] [PATTERN]      列出所有过程语言
  \dm[S+] [PATTERN]      列出所有物化视图
  \dn[S+] [PATTERN]     列出所有模式
  \do[S+] [PATTERN]      list operators
  \dO[S+] [PATTERN]      列出所有校对规则
  \dp     [模式]     列出表,视图和序列的访问权限
  \drds [模式1 [模式2]] 列出每个数据库的角色设置
  \ds[S+] [模式]    列出序列
  \dt[S+] [模式]     列出表
  \dT[S+] [模式]  列出数据类型
  \du[S+] [PATTERN]      列出角色
  \dv[S+] [模式]   列出视图
  \dE[S+] [PATTERN]      列出引用表
  \dx[+]  [PATTERN]      列出扩展
  \dy[+]  [PATTERN]      list event triggers
  \l[+]   [PATTERN]      列出所有数据库
  \sf[+]  FUNCNAME       显示一个函数的定义
  \sv[+]  VIEWNAME       显示一个视图的定义
  \z      [模式]    和\dp的功能相同

格式化
  \a                  在非对齐模式和对齐模式之间切换
  \C [字符串]        设置表的标题,或如果没有的标题就取消
  \f [字符串]         显示或设定非对齐模式查询输出的字段分隔符
  \H                    切换HTML输出模式 (目前是 关闭)
  \pset [NAME [VALUE]]   set table output option
                         (NAME := {border|columns|expanded|fieldsep|fieldsep_zero|
                         footer|format|linestyle|null|numericlocale|pager|
                         pager_min_lines|recordsep|recordsep_zero|tableattr|title|
                         tuples_only|unicode_border_linestyle|
                         unicode_column_linestyle|unicode_header_linestyle})
  \t [开|关]       只显示记录 (目前是 关闭)
  \T [字符串]         设置HTML <表格>标签属性, 或者如果没有的话取消设置
  \x [on|off|auto]       切换扩展输出模式(目前是 关闭)

连接
  \c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}
                         连接到新数据库(当前是"postgres")
  \encoding [编码名称] 显示或设定客户端编码
  \password [USERNAME]  安全地为用户更改口令
  \conninfo              显示当前连接的相关信息

操作系统
  \cd [目录]     更改目前的工作目录
  \setenv NAME [VALUE]   设置或清空环境变量
 \timing [开|关]       切换命令计时开关 (目前是 关闭)
  \! [命令]      在 shell中执行命令或启动一个交互式shell

变量
  \prompt [文本] 名称 提示用户设定内部变量
  \set [名称 [值数]] 设定内部变量,若无参数则列出全部变量
  \unset 名称    清空(删除)内部变量

大对象
  \lo_export LOBOID 文件
  \lo_import 文件 [注释]
  \lo_list
  \lo_unlink LOBOID   大对象运算
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 环境
  • 安装
    • 安装pg服务
    • 配置环境变量
    • 初始化数据库
  • pg数据库的配置及使用
    • 启动数据库
    • 数据库使用
    • 数据库配置
  • 附录
    • 附录1:psql命令帮助
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档