操作系统:Centos7
说明:postgresql必须在postgres用户下初始化数据库和启动,否则报错。
PostgreSQL的特性
- PostgreSQL是一种几乎可以运行在各种平台上的免费的开放源码的对象关系数据库管理系统,拥有与企业级数据库相媲美的特性,如完善的SQL标准支持、多版本并发控制、时间点恢复、表空间机制、异步复制、嵌套事务、在线热备份、一个复杂的查询优化器、预写日志容错技术。
- 它支持国际字符集、多字节字符编码、Unicode,并且对格式化、排序、大小写敏感提供本地化支持。
- PostgreSQL在管理大数据方面有良好的可扩展性,对并发用户管理具有自适应性。现在已经出现具有管理超过4万亿字节数据能力的实用版本产品。
- 开放特性:PostgreSQL内置了丰富的数据类型,如任意精度的数值、无限制长度的文本、几何图元、IP地址、数组等;同时还允许用户定义基于正规SQL类型的新类型,让数据库自身理解复杂数据,自定义类型中还可以包含继承关系。用户可以为数据库内几乎所有的对象定义新的类型,如索引、操作符(可重载现有操作符)、聚集函数、数据域、数据类型转换、会话(编码转换)等。
- 可编程性:PostgreSQL同样拥有大量的编程接口供用户开发使用,如ODBC、JDBC(Java)、Libpq(C/C++)等。
- 可定制性:PostgreSQL拥有广泛的编程语言支持来实现函数功能,包括内置的PL/PGSQL过程语言,PL/Perl、PL/PHP、PL/Python、PL/Ruby、PL/Tcl等脚本语言,以及Java、C/C++等高级编程语言。
- 函数的输出是一系列行类型的集合,可以在查询中当做表来使用,函数也可以被定义成以创建者或者调用者的身份运行。在其他的数据库产品中,函数也会被称为“存储过程”。
- 索引手段:用户可以自定义索引方法或者使用内置B-Tree索引、Hash表索引、GiST索引、GIN索引。GiST索引不是某种特定的索引类型,而是一种通用索引基础结构,可以在这种结构上实现很多不同的索引策略。
- PostgreSQL同时还支持如下功能:反向索引检索、表达式索引、部分索引、位图索引扫描。
- 多种身份认证方式:PostgreSQL中可以使用数据库用户/角色、操作系统、PAM、Kerberos等方式,根据配置文件(pg_hba.conf)中的设置执行对应的身份认证。
- PostgreSQL提供经济有效的、易于部署的复杂数据管理基础设施,在工业界、互联网得到广泛应用,在许多国际化大公司的应用中取得了良好的效果。
- PostgreSQL经过多年的发展,得到了学术界和工业界的充分认可。获得2008 Developer.com编辑选择的数据库工具方向的年度产品,2000年、2003~2006年荣获Linux Journal杂志编辑评选的“最佳数据库”奖,2004年获ArsTechnica最佳服务器应用奖,2002年获Linux New Media杂志编辑评选的“最佳数据库”奖,1999年获Linux World杂志评选的“最佳数据库”奖等多项荣誉。
下载源码包
https://ftp.postgresql.org/pub/source/v12.2/postgresql-12.2.tar.gz
解压
安装依赖包
指定安装路径
# ./configure --prefix=/application/postgresql-12.2/
编译安装
# ln -s /application/postgresql-12.2/ /application/postgresql
用户权限
创建虚拟用户
# id postgres
# uid=1000(postgres) gid=1000(postgres) 组=1000(postgres)
说明:创建postgres用户为虚拟用户时,因没有家目录,会报“could not change directory to "/root": 权限不够”的提示,忽略即可, 在postgres用户有家目录的情况下,不会报该提示。
创建数据库文件目录
用户文件访问权限变更
添加环境变量
用户切换
数据库初始化
配置修改
配置数据库允许访问的IP
vim /application/postgresql/data/pg_hba.conf
配置IP都可以连接数据库(如需要所有IP都可以访问则对应为0.0.0.0/0),此处认证类型选择的是MD5,可参考官方文档认证类型,选择适合的认证方式
配置监听地址、连接端口号、打开日志。
listen_addresses配置监听地址范围,改为*则为所有
port 默认为5432
启动数据库服务
# -bash-4.2$ psql -V
修改密码