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 only
local 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*
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
我的 Github:Github
CSDN: CSDN
个人网站: sirius blog
E-mail: [email protected]
推荐阅读
史上最全,最完美的 JAVA 技术体系思维导图总结,没有之一!
全站导航 | 我为什么要写这些博客?