PostgreSQL
PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中。PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等。另外,因为许可证的灵活,任何人都可以以任何目的免费使用、修改和分发PostgreSQL。
可扩展性
1.存储的功能和程序
2.程序语言:PL/PGSQL, Perl, Python (more)
3.外部数据包装器:使用标准SQL接口连接到其他数据库或流
4.许多提供附加功能的扩展,包括PostGIS
并发性,性能
1.索引
2.高级索引
3.复杂的查询计划期/优化器
4.交互
5.多版本并发控制(MVCC)
6.读取查询的并行化和构建B树索引
7.表分区
8.Sql标准中定义的所有事物隔离级别,包括Serializable
9.即时表达式汇编(JIT)
检索优势
*全文检索
版本信息:
CentOS版本:CentOS Linux release 7.4.1708 (Core)
PostgreSQL版本:psql (PostgreSQL) 10.20
第一部分:PostgresSQL的安装
1、安装rpm文件
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
2、安装客户端
yum install postgresql10
yum install postgresql10-contrib
3、安装服务端
yum install postgresql10-server
4、初始化
/usr/pgsql-10/bin/postgresql-10-setup initdb
5、设置自动启动并且启动postgresql服务
systemctl enable postgresql-10 systemctl start postgresql-10
postgresql的安装比较简单,官网上有明确的操作步骤
第二部分:创建用户和数据库
1、使用postgres用户登录(PostgresSQL安装后会自动创建postgres用户,无密码)
su - postgres
2、登录postgresql数据库
3、创建用户和数据库并授权
create user test_user with password 'abc123'; // 创建用户 create database test_db owner test_user; // 创建数据库 grant all privileges on database test_db to test_user; // 授权
4、退出psql(输入 \q 再按回车键即可)
\q
第三部分:开启远程访问
1、修改/var/lib/pgsql/10/data/postgresql.conf文件,取消 listen_addresses 的注释,将参数值改为“*” 2、修改/var/lib/pgsql/10/data/pg_hba.conf文件,增加下图红框部分内容
vim /var/lib/pgsql/10/data/postgresql.conf
3、切换到root用户,重启postgresql服务
systemctl restart postgresql-10.service
4、使用数据库连接工具测试连接
客户端链接工具:navicat、pgAdmin、DBeaver、DBVisualizer、DataGrip
第四部分:额外补充
1、修改默认生成的 postgres 用户密码(此postgres非上面的postgres用户,此为数据库的用户,上面的为操作系统的用户)
su - postgres psql -U postgres alter user postgres with encrypted password '1';
2、服务启动、关闭、重启、查看状态命令
systemctl start postgresql-10.service // 启动服务 systemctl stop postgresql-10.service // 关闭服务 systemctl restart postgresql-10.service // 重启服务 systemctl status postgresql-10.service // 查看状态