CentOS 7系统下PostgreSQL数据库的安装和使用

【摘要】 如果CentOS所在的服务器限于安全原因,客户并未给我们配置访问外网的权限,那么如何安装PostgreSQL数据库呢?本文将通过具体步骤来详细讲解如何在CentOS7 系统上离线安装PostgreSQL12数据库。

1 离线安装包准备

首先可以访问网址
https://yum.postgresql.org/13/redhat/rhel-7-x86_64/repoview/postgresqldbserver13.group.html
来下载对应(本文以postgresql13为例)的离线安装包文件,具体的示例截图如下:
CentOS 7系统下PostgreSQL数据库的安装和使用
通常情况下,需要下载如下几个RPM安装包:

postgresql13-13.0-1PGDG.rhel7.x86_64
#安装扩展
postgresql13-contrib-13.0-1PGDG.rhel7.x86_64
#客户端进行连接.
postgresql13-libs-13.0-1PGDG.rhel7.x86_64
#数据库的安装文件
postgresql13-server-13.0-1PGDG.rhel7.x86_64

注意:具体版本则需要根据自己的需要来进行选择,centos7对应于rhel7,如果是centos8 的话 选择 rhel8 进行下载。

然后,就需要利用SSL工具将本地下载的RMP安装文件上传到CentOS7服务器。
(虽然服务器不能联网访问网站资源,但可以进行远程登录进行管理)。

2 离线安装

首先进入上述离线安装文件所在的目录,用ll命令查询一下安装包是否已经离线上传好,界面截图如下:
CentOS 7系统下PostgreSQL数据库的安装和使用
在postgresql13_rpm目录下,执行如下命令,进行安装包的安装:

yum localinstall *.rpm 

期间可能会访问网络,但不影响安装,在提示是否确认安装时,选择y确认安装,等待安装即可。成功安装完postgresql 13 数据库之后,会自动创建一个服务,可以看一下名为postgresql-13的服务,使用如下命令进行服务状态查看:

systemctl status postgresql-13  

首次安装后,此命令会显示相关的文件信息:

Loaded: loaded (/usr/lib/systemd/system/postgresql-13.service; enabled; vendor preset: disabled)

可以通过cat命令查看此文件的内容,其中包含相关的数据存储目录信息:

cat /usr/lib/systemd/system/postgresql-13.service
 Location of database directory
Environment=PGDATA=/var/lib/pgsql/13/data/ 
#程序目录
ExecStart=/usr/pgsql-13/bin/postmaster -D ${PGDATA} 

3 数据库初始化

有了数据库的数据存储目录和程序所在目录,可以使用如下命令进行数据库的初始化工作,具体示例代码如下:

su - postgres
cd /usr/pgsql-13/bin/
#初始化数据库
./initdb -D /var/lib/pgsql/13/data/

成功执行命令后,需要退出postgres命令环境,用root 用户启动postgresql 服务,并且设置postgresql服务为自动启动,这样在服务器重启后,无需手动再启动postgresql 服务,具体命令如下:

systemctl enable  postgresql-13 && systemctl restart postgresql-13

最后,需要对PG数据库进行安全性方面的配置,比如修改密码,创建用户,设置登录策略等等,下面给出一些示例代码:

su - postgres
psql

#修改密码

alter role postgres with password 'your_root_pwd###';

#修改配置文件,配置登录策略等

vim /var/lib/pgsql/12/data/pg_hba.conf
#增加一行
host    all             all             0.0.0.0/0         md5   

注: trust 是免密, md5 是加密
#修改数据库其他配置信息

vim /var/lib/pgsql/13/data/postgresql.conf
listen_addresses = '*' 
max_connections = 700

#重启服务

systemctl restart  postgresql-13

重启后,再次查看数据库状态,命令如下:

CentOS 7系统下PostgreSQL数据库的安装和使用
至此,数据库安装完毕。。。

4 psql命令详解

psql -h <hostname or ip> -p <端口> [数据库名称] [用户名称]
**psql常用连接参数**

缩写	说明
-h	数据库服务器主机
-p	数据库服务器端口
-U	数据库用户名
-d	连接的数据库名称
-c	运行一条sql命令, 然后退出
-f	执行文件中的命令, 然后退出
-l	列出可用的数据库, 然后退出
-V	输出版本信息,然后退出
-q	没有多余消息,只有查询输出
-H	查询结果以HTML表格形式输出

psql命令

常用命令	说明
\q	退出命令行
\l	查看数据库列表
\c	切换数据库
\x	查询结果横纵显示切换
\s	查看命令历史记录
\h	查看所有的sql关键字
\?	命令行操作的帮助
\i	执行sql文件
\timing	执行SQL消耗时间开关
\encoding	显示字符集
\pset border 0	输出内容无边框
\pset border 1	边框只在内部存在
\pset border 2	内外都有边框
\d命令	说明
\d	显示表、索引和视图
+	显示更多的信息包括表和列的注释等相关信息
\da	显示所有可用聚集函数,以及它们操作的数据类型
\dA	显示访问方法
\dAc	显示方法子类别
\dAf	显示方法家庭
\dAo	显示方法家庭的操作员
\dAp	显示方法家庭的支持功能
\db	显示所有的表空间
\dc	显示所有字符集之间的可用转换
\dC	显示所有类型转换
\dd	显示所有可视对象,或所有匹配 pattern 的描述
\dD	显示所有可用域
\ddp	显示默认权限
\deu	显示用户映射
\df	显示匹配的函数(存储过程)
\dF	显示文本搜索配置
\dFd	显示文字搜索字典
\dFp	显示文本搜索解析器
\dFt	显示文字搜索模板
\dg	显示角色
\di	显示匹配的索引
\dl	显示一个大对象的列表,与\lo_list相同
\dL	显示程序语言
\dm	显示物化视图
\dn	显示所有可用模式(名字空间)
\do	显示所有可用操作符,以及它们的操作数和返回的数据类型
\dO	显示排序规则
\dp	显示表,视图和序列访问权限
\drds	显示每个数据库的角色设置
\ds	显示匹配的序列
\dt	显示匹配的表
\dT	显示数据类型
\du	显示角色
\dv	显示匹配的视图
\dx	列表扩展
\dy	显示事件触发器

示例:

1.命令提示符前面的就是当前的数据库,使用 \l 查看当前的数据库列表:
CentOS 7系统下PostgreSQL数据库的安装和使用

2.可以创建新的数据库:
CentOS 7系统下PostgreSQL数据库的安装和使用
3.执行命令 \c 命令切换当前数据库为test:
CentOS 7系统下PostgreSQL数据库的安装和使用
4.执行 \d 可以查看当前数据库下的所有表:
CentOS 7系统下PostgreSQL数据库的安装和使用
5.创建一张新表并再次查看:

CREATE TABLE school (
    id        integer not null ,
    name      character(32),
    number    char(5),
    constraint sch_key primary key(id)
);

CentOS 7系统下PostgreSQL数据库的安装和使用
6.执行 \d school可以查看表的详细信息:
CentOS 7系统下PostgreSQL数据库的安装和使用
7.执行 \q 退出数据库:
CentOS 7系统下PostgreSQL数据库的安装和使用

上一篇:解决PostgreSQL安装后遇到的问题


下一篇:快速搭建Python开发环境