2.1.1 Red Hat/CentOS下的安装方法

在Red Hat、CentOS下可使用yum工具来安装PostgreSQL,这些操作系统自带的软件库中已有PostgreSQL数据库,不过通常版本会低一些。本小节介绍安装官方提供的二进制包的方法。

在图2-1中,我们选择“Red Hat family Linux (including CentOS/Fedora/Scientific/Oracle variants)”,之后会出现一个选择界面,在该界面中选择数据库的版本、平台类型等信息后,就会出现具体的安装步骤的提示,如图2-2所示。

在图2-2中,我们选择数据库的版本、操作系统的版本或类型等信息后,就会出现安装方法:首先安装一个安装源,然后再从这个安装源中安装数据库程序。例如,在上面的例子中,安装一个安装源的命令如下。


yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-Red Hat-repo-latest.noarch.rpm

安装完PostgreSQL的yum源后,通过“yum search postgresql”命令可以看到很多与PostgreSQL数据库相关的软件。

然后再从这个安装源中安装数据库程序。通常我们需要安装数据库服务端,命令如下:


yum install postgresql12-server

运行以上命令,PostgreSQL数据库的软件就安装完成了。

图2-2 PostgreSQL官方yum安装源

上面只是把软件装好了,并未创建数据库实例。创建数据库实例的命令如下:


/usr/pgsql-12/bin/postgresql-12-setup initdb

该数据库创建在“/var/lib/pgsql/12/data”目录下,同时会生成开机自启动的配置,我们可以通过下面的命令允许开机自启动PostgreSQL数据库:


systemctl enable postgresql-12

然后用操作系统的服务管理命令启动数据库:


systemctl start postgresql-12

Red Hat7.X/CentOS 7.X是用systemctl命令管理服务的,而更早的版本如Red Hat6.X/CentOS6.X是用service命令管理服务的:


service postgresql-12 start

可以用下面的命令查看数据库服务的状态:


systemctl status postgresql-12

可以用systemctl命令停止数据库:


systemctl stop postgresql-12

也可以使用下面的命令安装contrib包,contrib包中包含了一些插件和工具:


yum install postgresql12-contrib

默认情况下,PostgreSQL的数据目录在“/var/lib/pgsql/<verson>/data”目录下:


[root@pg01 ~]# ls -l /var/lib/pgsql/12/data
total 64
drwx------ 5 postgres postgres    41 Feb 11 13:09 base
-rw------- 1 postgres postgres    30 Feb 11 13:16 current_logfiles
drwx------ 2 postgres postgres  4096 Feb 11 13:09 global
drwx------ 2 postgres postgres    32 Feb 11 13:16 log
drwx------ 2 postgres postgres     6 Feb 11 13:09 pg_commit_ts
drwx------ 2 postgres postgres     6 Feb 11 13:09 pg_dynshmem
-rw------- 1 postgres postgres  4269 Feb 11 13:09 pg_hba.conf
-rw------- 1 postgres postgres  1636 Feb 11 13:09 pg_ident.conf
drwx------ 4 postgres postgres    68 Feb 11 13:21 pg_logical
drwx------ 4 postgres postgres    36 Feb 11 13:09 pg_multixact
drwx------ 2 postgres postgres    18 Feb 11 13:16 pg_notify
drwx------ 2 postgres postgres     6 Feb 11 13:09 pg_replslot
drwx------ 2 postgres postgres     6 Feb 11 13:09 pg_serial
drwx------ 2 postgres postgres     6 Feb 11 13:09 pg_snapshots
drwx------ 2 postgres postgres     6 Feb 11 13:09 pg_stat
drwx------ 2 postgres postgres    25 Feb 11 13:21 pg_stat_tmp
drwx------ 2 postgres postgres    18 Feb 11 13:09 pg_subtrans
drwx------ 2 postgres postgres     6 Feb 11 13:09 pg_tblspc
drwx------ 2 postgres postgres     6 Feb 11 13:09 pg_twophase
-rw------- 1 postgres postgres     3 Feb 11 13:09 PG_VERSION
drwx------ 3 postgres postgres    60 Feb 11 13:09 pg_wal
drwx------ 2 postgres postgres    18 Feb 11 13:09 pg_xact
-rw------- 1 postgres postgres    88 Feb 11 13:09 postgresql.auto.conf
-rw------- 1 postgres postgres 26632 Feb 11 13:09 postgresql.conf
-rw------- 1 postgres postgres    58 Feb 11 13:16 postmaster.opts
-rw------- 1 postgres postgres   103 Feb 11 13:16 postmaster.pid

安装完后我们就可以用psql来连接数据库,首先用su命令切换到postgres用户下:


[root@pg01 ~]# su - postgres
-bash-4.2$ psql
psql (12.1)
Type "help" for help.

postgres=#

然后在psql中输入“\q”退出psql。