服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - PostgreSQL - CentOS 7下安装PostgreSQL 9.6的教程分享

CentOS 7下安装PostgreSQL 9.6的教程分享

2020-04-29 15:28标点符 PostgreSQL

PostgreSQL在我心目中的地位要远远高于MySQL,虽然流行对比MySQL低很对,但是功能性一致走在MySQL的前面。下面这篇文章主要介绍了CentOS 7下安装PostgreSQL数据库的方法,需要的朋友可以参考借鉴,一起来看看吧。

前言

PostgreSQL是一个强大开源的对象关系类型数据库系统,它能运行于几乎所有主要的操作系统,包括Linux、Unix(AIX、BSD、HP-UX、SGI IRIX、Mac OS、Solaris、Tru64)、Windows OS。对于新的项目我是非常建议使用PostgreSQL。这里就简单的整理下CentOS下的安装过程。

CentOS的源中自带有PostgreSQL,可以通过 yum list | grep postgresql 查看系统自带的版本,我这边看到的是9.2版本,个人还是比较建议安装更新的版本。

安装

1、安装 yum 源(地址从 http://yum.postgresql.org/repopackages.php 获取)

?
1
yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

这里选择的是最新的9.6版本,安装完毕后使用 yum update 更新源信息,然后再使用 yum list | grep postgresql ,是否已经有最新版本的postgresql。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
[root@localhost ~]# yum list|grep postgresql
calligra-kexi-driver-postgresql.x86_64 2.9.10-1.el7     epel 
collectd-postgresql.x86_64    5.6.0-1.el7     epel 
freeradius-postgresql.x86_64   3.0.4-6.el7     base 
libreoffice-postgresql.x86_64   1:4.3.7.2-5.el7_2.1   updates
mingw32-postgresql.noarch    9.3.4-2.el7     epel 
mingw64-postgresql.noarch    9.3.4-2.el7     epel 
opendbx-postgresql.x86_64    1.4.6-6.el7     epel 
opensips-postgresql.x86_64    1.10.5-3.el7     epel 
owncloud-postgresql.noarch    9.0.4-1.el7     epel 
pcp-pmda-postgresql.x86_64    3.10.6-2.el7     base 
pdns-backend-postgresql.x86_64   3.4.10-1.el7     epel 
perdition-postgresql.x86_64    2.1-5.el7      epel 
postgresql.i686       9.2.15-1.el7_2     updates
postgresql.x86_64      9.2.15-1.el7_2     updates
postgresql-contrib.x86_64    9.2.15-1.el7_2     updates
postgresql-devel.i686     9.2.15-1.el7_2     updates
postgresql-devel.x86_64     9.2.15-1.el7_2     updates
postgresql-docs.x86_64     9.2.15-1.el7_2     updates
postgresql-jdbc.noarch     9.4.1212-1.rhel7    pgdg96
postgresql-jdbc-javadoc.noarch   9.4.1212-1.rhel7    pgdg96
postgresql-libs.i686     9.2.15-1.el7_2     updates
postgresql-libs.x86_64     9.2.15-1.el7_2     updates
postgresql-odbc.x86_64     09.03.0100-2.el7    base 
postgresql-pgpool-II.x86_64    3.4.6-1.el7     epel 
postgresql-pgpool-II-devel.x86_64  3.4.6-1.el7     epel 
postgresql-pgpool-II-extensions.x86_64 3.4.6-1.el7     epel 
postgresql-plperl.x86_64    9.2.15-1.el7_2     updates
postgresql-plpython.x86_64    9.2.15-1.el7_2     updates
postgresql-plruby.x86_64    0.5.3-13.el7     epel 
postgresql-plruby-doc.x86_64   0.5.3-13.el7     epel 
postgresql-pltcl.x86_64     9.2.15-1.el7_2     updates
postgresql-server.x86_64    9.2.15-1.el7_2     updates
postgresql-test.x86_64     9.2.15-1.el7_2     updates
postgresql-unit96.x86_64    1.0-1.rhel7     pgdg96
postgresql-unit96-debuginfo.x86_64  1.0-1.rhel7     pgdg96
postgresql-upgrade.x86_64    9.2.15-1.el7_2     updates
postgresql96.x86_64      9.6.1-1PGDG.rhel7    pgdg96
postgresql96-contrib.x86_64    9.6.1-1PGDG.rhel7    pgdg96
postgresql96-debuginfo.x86_64   9.6.1-1PGDG.rhel7    pgdg96
postgresql96-devel.x86_64    9.6.1-1PGDG.rhel7    pgdg96
postgresql96-docs.x86_64    9.6.1-1PGDG.rhel7    pgdg96
postgresql96-libs.x86_64    9.6.1-1PGDG.rhel7    pgdg96
postgresql96-odbc.x86_64    09.05.0400-1PGDG.rhel7   pgdg96
postgresql96-plperl.x86_64    9.6.1-1PGDG.rhel7    pgdg96
postgresql96-plpython.x86_64   9.6.1-1PGDG.rhel7    pgdg96
postgresql96-pltcl.x86_64    9.6.1-1PGDG.rhel7    pgdg96
postgresql96-python.x86_64    4.2-1PGDG.rhel7    pgdg96
postgresql96-python-debuginfo.x86_64 4.2-1PGDG.rhel7    pgdg96
postgresql96-server.x86_64    9.6.1-1PGDG.rhel7    pgdg96
postgresql96-tcl.x86_64     2.1.1-1.rhel7     pgdg96
postgresql96-tcl-debuginfo.x86_64  2.1.1-1.rhel7     pgdg96
postgresql96-test.x86_64    9.6.1-1PGDG.rhel7    pgdg96
proftpd-postgresql.x86_64    1.3.5b-2.el7     epel 
python-testing.postgresql.noarch  1.1.0-2.el7     epel 
qt-postgresql.i686      1:4.8.5-12.el7_2    updates
qt-postgresql.x86_64     1:4.8.5-12.el7_2    updates
qt5-qtbase-postgresql.x86_64   5.6.1-3.el7     epel 
soci-postgresql.x86_64     3.2.3-1.el7     epel 
soci-postgresql-devel.x86_64   3.2.3-1.el7     epel

2、安装PostgreSQL

这里最核心的是要安装postgresql96-server和postgresql96-contrib,其中”contrib”包里包含了一些常用的组件和方法。

?
1
yum install postgresql96-server postgresql96-contrib

安装后,可执行文件在 /usr/pgsql-9.5/bin/, 数据和配置文件在 /var/lib/pgsql/9.6/data/

3、初始化数据库

?
1
/usr/pgsql-9.6/bin/postgresql96-setup initdb

4、默认情况下PostgreSQL不支持密码登录,如需支持需要修改配置文件

?
1
vi /var/lib/pgsql/9.6/data/pg_hba.conf

将未注释行中的ident 替换为 md5

?
1
2
3
4
5
6
7
8
9
10
11
12
13
# TYPE DATABASE  USER   ADDRESS     METHOD
 
# "local" is for Unix domain socket connections only
local all    all          peer
# IPv4 local connections:
host all    all    127.0.0.1/32   ident
# IPv6 local connections:
host all    all    ::1/128     ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication  postgres        peer
#host replication  postgres  127.0.0.1/32   ident
#host replication  postgres  ::1/128     ident

如需开启远程访问,可编辑/var/lib/pgsql/9.6/data/postgresql.conf 文件。

#listen_addresses = 'localhost'   修改为 listen_addresses='*' (当然,此处‘*'也可以改为任何你想开放的服务器IP)

另外对于特定的IP还可以设置开启信任远程连接,修改/var/lib/pgsql/9.6/data/pg_hba.conf,按下面的格式进行添加设置。

?
1
2
3
# IPv4 local connections:
 host all   all  127.0.0.1/32  trust
 host all   all  8.8.8.8/32(需要连接的服务器IP) trust

修改完配置以后不要忘了重启服务。

5、管理服务,和其他服务一样还是用systemd进行管理

?
1
2
3
4
systemctl start postgresql-9.6 #启动服务
systemctl restart postgresql-9.6 #重启服务
systemctl stop postgresql-9.6 #停止服务
systemctl enable postgresql-9.6 #自动启动

6、登录PostgreSQL

PostgreSQL 安装完成后,会建立一下‘postgres'用户,用于执行PostgreSQL,数据库中也会建立一个'postgres'用户,如果我们要使用PostgreSQL就必须先登录此帐号。

?
1
sudo -i -u postgres

执行后提示符会变为 ‘-bash-4.2$',再运行

同构执行进入 psql 进入postgresql命令行环境。

?
1
2
3
4
5
6
[root@localhost ~]# sudo -i -u postgres
-bash-4.2$ psql
psql (9.6.1)
Type "help" for help.
 
postgres=#

接着可以执行 ALTER USER postgres WITH PASSWORD '123456' 来设置postgres用户密码,可通过 \q  退出数据库。

7、打开防火墙

CentOS 防火墙中内置了PostgreSQL服务,配置文件位置在/usr/lib/firewalld/services/postgresql.xml,只需以服务方式将PostgreSQL服务开放即可。

?
1
2
firewall-cmd --add-service=postgresql --permanent 开放postgresql服务
firewall-cmd --reload 重载防火墙

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

原文链接:https://www.biaodianfu.com/centos-7-install-postgresql.html

延伸 · 阅读

精彩推荐
  • PostgreSQL深入理解PostgreSQL的MVCC并发处理方式

    深入理解PostgreSQL的MVCC并发处理方式

    这篇文章主要介绍了深入理解PostgreSQL的MVCC并发处理方式,文中同时介绍了MVCC的缺点,需要的朋友可以参考下 ...

    PostgreSQL教程网3622020-04-25
  • PostgreSQLRDS PostgreSQL一键大版本升级技术解密

    RDS PostgreSQL一键大版本升级技术解密

    一、PostgreSQL行业位置 (一)行业位置 在讨论PostgreSQL(下面简称为PG)在整个数据库行业的位置之前,我们先看一下阿里云数据库在全球的数据库行业里的...

    未知1192023-05-07
  • PostgreSQLPostgresql查询效率计算初探

    Postgresql查询效率计算初探

    这篇文章主要给大家介绍了关于Postgresql查询效率计算的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Postgresql具有一定的参考学习价...

    轨迹4622020-05-03
  • PostgreSQL分布式 PostgreSQL之Citus 架构

    分布式 PostgreSQL之Citus 架构

    节点 Citus 是一种 PostgreSQL 扩展,它允许数据库服务器(称为节点)在“无共享(shared nothing)”架构中相互协调。这些节点形成一个集群,允许 PostgreSQL 保存比单...

    未知802023-05-07
  • PostgreSQLPostgreSQL标准建表语句分享

    PostgreSQL标准建表语句分享

    这篇文章主要介绍了PostgreSQL标准建表语句分享,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    码上得天下7962021-02-27
  • PostgreSQLpostgresql 数据库中的数据转换

    postgresql 数据库中的数据转换

    postgres8.3以后,字段数据之间的默认转换取消了。如果需要进行数据变换的话,在postgresql数据库中,我们可以用"::"来进行字段数据的类型转换。...

    postgresql教程网12482021-10-08
  • PostgreSQLPostgresql开启远程访问的步骤全纪录

    Postgresql开启远程访问的步骤全纪录

    postgre一般默认为本地连接,不支持远程访问,所以如果要开启远程访问,需要更改安装文件的配置。下面这篇文章主要给大家介绍了关于Postgresql开启远程...

    我勒个去6812020-04-30
  • PostgreSQLpostgresql 中的to_char()常用操作

    postgresql 中的to_char()常用操作

    这篇文章主要介绍了postgresql 中的to_char()常用操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    J符离13432021-04-12