PostgreSQL基本介绍与yum安装

PostgreSQL基本介绍与yum安装

  • PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES,现在已经更名为PostgreSQL,版本 4.2为基础的对象关系型数据库管理系统(ORDBMS)。PostgreSQL支持大部分 SQL标准并且提供了许多其他现代特性:复杂查询、外键、触发器 、视图、事务完整性、MVCC。同样,PostgreSQL 可以用许多方法扩展,比如, 通过增加新的数据类型、函数、操作符、聚 集函数、索引。免费使用、修改、和分发 PostgreSQL,不管是私用、商用、还是学术研究使用。

官方网站

下载地址

PostgreSQL的特点:
  • PostgreSQL可在所有主要操作系统(即Linux,UNIX(AIX,BSD,HP-UX,SGI IRIX,Mac OS X,Solaris,Tru64)和Windows等)上运行。
  • PostgreSQL支持文本,图像,声音和视频,并包括用于C/C++,Java,Perl,Python,Ruby,Tcl和开放数据库连接(ODBC)的编程接口。
  • PostgreSQL支持SQL的许多功能,例如复杂SQL查询,SQL子选择,外键,触发器,视图,事务,多进程并发控制(MVCC),流式复制(9.0),热备(9.0))。
  • 在PostgreSQL中,表可以设置为从“父”表继承其特征。
  • 可以安装多个扩展以向PostgreSQL添加附加功能。

PostgreSQL是一个功能强大的开源数据库系统。经过长达15年以上的积极开发和不断改进,PostgreSQL已在可靠性、稳定性、数据一致性等获得了业内极高的声誉。目前PostgreSQL可以运行在所有主流操作系统上,包括Linux、Unix(AIX、BSD、HP-UX、SGI IRIX、Mac OS X、Solaris和Tru64)和Windows。PostgreSQL是完全的事务安全性数据库,完整地支持外键、联合、视图、触发器和存储过程(并支持多种语言开发存储过程)。它支持了大多数的SQL:2008标准的数据类型,包括整型、数值值、布尔型、字节型、字符型、日期型、时间间隔型和时间型,它也支持存储二进制的大对像,包括图片、声音和视频。PostgreSQL对很多高级开发语言有原生的编程接口,如C/C++、Java、.Net、Perl、Python、Ruby、Tcl 和ODBC以及其他语言等,也包含各种文档。

作为一种企业级数据库,PostgreSQL以它所具有的各种高级功能而自豪,像多版本并发控制(MVCC)、按时间点恢复(PITR)、表空间、异步复制、嵌套事务、在线热备、复杂查询的规划和优化以及为容错而进行的预写日志等。它支持国际字符集、多字节编码并支持使用当地语言进行排序、大小写处理和格式化等操作。它也在所能管理的大数据量和所允许的大用户量并发访问时间具有完全的高伸缩性。目前已有很多PostgreSQL的系统在实际生产环境下管理着超过4TB的数据。一些PostgreSQL系统的极限值如下表所列:

img

主要优点:
1、对超许可数量软件使用的天然免疫力

对一些商业性质的数据库销售商来说,超许可数量的软件使用是第一位的问题。而使用PostgreSQL,因为没有任何授权的费用是,也就没有任何人可以起诉您违反授权协议违规使用软件。

这样也还有以下几个其他的优点:

随着使用数量的增加不会影响业务的利润。
在任何阶段都不会有类似授权审计的打扰。
在做理论性研究和测试性的发布时不必考虑额外授权费用的影响。

2、比商业服务商更好的支持

除了有一般商业公司的支持外,我们还有由PostgreSQL专业人员和热心的爱好者组成的各种社区,用户可以向他们寻求支持和帮助。

3、员工成本的显著降低

相对于市场上大型的商业私有数据库软件,我们的系统在设计和开发时已考虑仅需少量的维护和优化,同时仍保持所有功能正常、稳定和性能正常。

不仅如此,我们的培训过程相对于那些商业私有数据库供应商来说,总体来说有更好的性价比、更容易管理和更接近真实的使用场景。

4、享有盛名的可靠性和稳定性

与很多商业私有数据库不一样的是,对很多公司特别常见的是,PostgreSQL在几年的运行过程中几乎未出现哪怕是一次的宕机情况,即使是一次,它就是这样稳定地工作着。

5、扩展性

所有PostgreSQL的源代码对所有人都是可以免费获得的。如果您的公司员工需要定制或是给PostgreSQL增加一些功能,他们只需做很少的改动工作,也没有额外的成本。全球PostgreSQL社区的专业人员和热心的爱好者也在积极地扩展PostgreSQL的功能。

6、跨平台能力

PostgreSQL几乎可以所有Unix类操作系统下运行 (根据统计有至少34种平台),自8.0版本以后,在Windows平台下的也使用原生支持方式。

7、大数据量环境下的设计

我们使用MVCC模式作为数据存储的策略,这样PostgreSQL可以在大数据量的环境下具有极高的响应性能。一些领先的商业私有数据库供应商基于相同的原因,也使用这种技术。

8、图形化的数据库设计和管理工具

有很多高品质的图形化的PostgreSQL管理工具软件,包括开源和商业性质的。在我们的维基网站上有一个清单列出了PostgreSQL相关的图形化工具软件。

9、技术特性

可浏览功能列表来了解PostgreSQL各种功能变化。

Yum包安装:

**系统:**CentOS-7.5
**软件:**Postgresql-11

安装PgSQL服务:

下载路径

[root@postgrssql ~]# yum -y install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm
[root@postgrssql ~]# yum -y install postgresql11
[root@postgrssql ~]# yum -y install postgresql11-server
初始化并启动:
[root@postgrssql ~]# /usr/pgsql-11/bin/postgresql-11-setup initdb
Initializing database ... OK

[root@postgrssql ~]# systemctl start postgresql-11.service
[root@postgrssql ~]# systemctl enable postgresql-11.service
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-11.service to /usr/lib/systemd/system/postgresql-11.service
登录数据库:
[root@postgrssql ~]# su - postgres
Last login: Sat Nov 23 16:37:34 CST 2019 on pts/0
-bash-4.2$ psql
psql (11.6)
Type "help" for help.

postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
-----------+----------+----------+-------------+-------------+-----------------------
 course    | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(4 rows)
PgSQL基本操作:
用户和用户组:
  • 创建用户:newuser
  • 密码:123456
# 方法一(使用SQL语句创建)
postgres=# create user newuser with password '123456';
CREATE ROLE

# 方法二(使用shell命令行创建,用法见:createuser --help)
[root@postgresql-10 tools]# sudo -u postgres createuser newuser --password
Password: 
  • 在postgres中用户实际上是role,同时组也是role。 包含其他role的role就是组。
  • 默认创建用户时会自动创建同名role。
# 创建用户组demo_role
postgres=# create role demo_role;
CREATE ROLE

# 指定newuser属于demo_role
postgres=# grant newuser to demo_role;
GRANT ROLE

# 指定newuser同时又属于postgres
postgres=# grant newuser to postgres;
切换role
# 切换到role_name用户,只能从高权限role往低权限role切换
postgres=# set role demo_role;
SET

# 切换回最初的role
postgres=> reset role;
RESET
inherit权限:该属性使组成员拥有组的所有权限
# 使newuser组成员继承newuser的所有权限
postgres=# alter role newuser inherit;
ALTER ROLE
修改用户密码
# 修改用户密码(方式一)
postgres=# alter user postgres with encrypted password 'redhat';

# 修改用户密码(方式二)
postgres=# \password
Enter new password: redhat
Enter it again: redhat
创建数据库:
# 方法一(使用SQL语句创建)
postgres=# create database newdb owner newuser;

# 方法二(使用shell命令行创建,用法见:createdb --help)
sudo -u postgres createdb newdb --owner newuser
权限管理:
权限指定,语法格式如下:
https://jianwi.com/articles/database/postgresql/quickstart.html
帮助性命令:
 ? [commands]   显示反斜杠命令帮助信息
 ? options  显示psql命令行选项帮助信息
 ? variables    显示指定变量帮助信息
 \h [NAME]  显示SQL命令语法帮助信息,*表示所有命令
信息性命令
(选项: S = 显示系统对象, + = 附加细节)   
  \d[S+]                     列出表、视图、序列
  \d[S+] NAME                描述表, 视图, 序列, 或索引
  \da[S] [PATTERN]           列出聚合函数
  \dA[+] [PATTERN]           列出访问方法
  \db[+] [PATTERN]           列出表空间
  \dc[S+] [PATTERN]          列出转换记录
  \dC[+] [PATTERN]           列出转换函数
  \dd[S] [PATTERN]           显示别处无法显示的对象描述
  \dD[S+] [PATTERN]          列出域名
  \ddp [PATTERN]             列出默认权限
  \dE[S+] [PATTERN]          列出外部表
  \det[+] [PATTERN]          列出外部表
  \des[+] [PATTERN]          列出外部服务
  \deu[+] [PATTERN]          列出用户映射图
  \dew[+] [PATTERN]          列出外部数据封装
  \df[antw][S+] [PATRN]      列出[agg/normal/trigger/window]等函数
  \dF[+] [PATTERN]           列出文本搜索配置
  \dFd[+] [PATTERN]          列出文本搜索字典
  \dFp[+] [PATTERN]          列出文本搜索解析器
  \dFt[+] [PATTERN]          列出文本搜索模板
  \dg[S+] [PATTERN]          列出角色
  \di[S+] [PATTERN]          列出索引
  \dl                        列出大的对象,与\lo_list一样
  \dL[S+] [PATTERN]          列出存储过程语言
  \dm[S+] [PATTERN]          列出实体化的视图
  \dn[S+] [PATTERN]          列出提要schema
  \do[S] [PATTERN]           列出运算符
  \dO[S+] [PATTERN]          列出各语言排序规则名
  \dp [PATTERN]              列出表、视图和序列的访问权限
  \drds [PATRN1 [PATRN2]]    列出每个数据库角色设置
  \dRp[+] [PATTERN]          列出副本的发布信息
  \dRs[+] [PATTERN]          列出副本的订阅信息
  \ds[S+] [PATTERN]          列出序列
  \dt[S+] [PATTERN]          列出表
  \dT[S+] [PATTERN]          列出数据类型
  \du[S+] [PATTERN]          列出角色
  \dv[S+] [PATTERN]          列出视图
  \dx[+] [PATTERN]           列出扩展
  \dy [PATTERN]              列出事件触发器
  \l[+] [PATTERN]            列出数据库
  \sf[+] FUNCNAME            显示函数的定义
  \sv[+] VIEWNAME            显示视图的定义
  \z [PATTERN]               与\dp相同
dv[S+] [PATTERN]          列出视图
  \dx[+] [PATTERN]           列出扩展
  \dy [PATTERN]              列出事件触发器
  \l[+] [PATTERN]            列出数据库
  \sf[+] FUNCNAME            显示函数的定义
  \sv[+] VIEWNAME            显示视图的定义
  \z [PATTERN]               与\dp相同
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

正在输入中…………

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值