本文共 3093 字,大约阅读时间需要 10 分钟。
PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中。PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等。另外,因为许可证的灵活,任何人都可以以任何目的免费使用、修改和分发PostgreSQL。
1)PostgreSQL相对于MySQL的优势
1、在SQL的标准实现上要比MySQL完善,而且功能实现比较严谨;
2、存储过程的功能支持要比MySQL好,具备本地缓存执行计划的能力; 3、对表连接支持较完整,优化器的功能较完整,支持的索引类型很多,复杂查询能力较强; 4、PG主表采用堆表存放,MySQL采用索引组织表,能够支持比MySQL更大的数据量。 5、PG的主备复制属于物理复制,相对于MySQL基于binlog的逻辑复制,数据的一致性更加可靠,复制性能更高,对主机性能的影响也更小。 6、MySQL的存储引擎插件化机制,存在锁机制复杂影响并发的问题,而PG不存在。2) MySQL相对于PG的优势:
1、innodb的基于回滚段实现的MVCC机制,相对PG新老数据一起存放的基于XID的MVCC机制,是占优的。新老数据一起存放,需要定时触 发VACUUM,会带来多余的IO和数据库对象加锁开销,引起数据库整体的并发能力下降。而且VACUUM清理不及时,还可能会引发数据膨胀;
2、MySQL采用索引组织表,这种存储方式非常适合基于主键匹配的查询、删改操作,但是对表结构设计存在约束; 3、MySQL的优化器较简单,系统表、运算符、数据类型的实现都很精简,非常适合简单的查询操作; 4、MySQL分区表的实现要优于PG的基于继承表的分区实现,主要体现在分区个数达到上千上万后的处理性能差异较大。 5、MySQL的存储引擎插件化机制,使得它的应用场景更加广泛,比如除了innodb适合事务处理场景外,myisam适合静态数据的查询场景。 3)、总体上来说,开源数据库都不是很完善,商业数据库oracle在架构和功能方面都还是完善很多的。从应用场景来说,PG更加适合严格的企业应用场景(比如金融、电信、ERP、CRM),而MySQL更加适合业务逻辑相对简单、数据可靠性要求较低的互联网场景(比如google、facebook、alibaba)。以上摘自:https://www.cnblogs.com/sbj-dawn/p/8053549.html
yum install https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-3.noarch.rpm
yum install postgresql95 postgresql95-server
/usr/pgsql-9.5/bin/postgresql95-setup initdb
systemctl enable postgresql-9.5.service
systemctl start postgresql-9.5.service
systemctl status postgresql-9.5.service
psql --version
vi /var/lib/pgsql/9.5/data/postgresql.conf
修改 #listen_addresses = 'localhost' 为 listen_addresses='*'
vi /var/lib/pgsql/9.5/data/pg_hba.conf
# "local" is for Unix domain socket connections onlylocal all all trust# IPv4 local connections:host all all 127.0.0.1/32 trust# 这里第三个 all 可以指定为具体的IP,这里是所有都可以连接host all all all trust
详细配置原理请参考:https://www.cnblogs.com/flying-tiger/p/5983588.html
systemctl restart postgresql-9.5.service
PostgreSQL数据库创建一个postgres用户作为数据库的管理员,密码随机,所以需要修改密码
#删除用户密码sudo passwd -d postgres
#设置用户密码,根据提示输入密码sudo -u postgres passwd
#使用postgres 用户登录,输入密码即可su postgres
#进入客户端psql
#修改密码ALTER USER postgres WITH PASSWORD 'postgres'
#退出\q
yum remove postgresql*
默认用户名和密码都为 postgres
1、psql: FATAL: Ident authentication failed for user “psqluser”
原因:postgresql 配置文件 pg_hba.conf中没有配置信任该服务器ip导致报错。 https://blog.csdn.net/Mr_EvanChen/article/details/83626250 https://www.cnblogs.com/flying-tiger/p/5983588.html
2、FATAL: no pg_hba.conf entry for host
https://blog.csdn.net/zhengbo0/article/details/17911169/
官网:https://www.cnblogs.com/shhnwangjian/p/8392050.html
配置文件 pg_hba.conf 说明:https://www.cnblogs.com/flying-tiger/p/5983588.html
公众号:【星尘Pro】
github:
推荐阅读