如果你需要安装较新的PostgreSQL版本,可以按照官方网站的方法安装官方提供的二进制安装包或参照2.2节中介绍的从源码安装的方法进行安装。
对于Linux操作系统来说,安装官方提供的二进制安装包的方法是,先安装官方提供的安装源,然后再用不同Linux发行版本的包管理器进行安装。对于不同的Linux发行版本,添加安装源的方法是不同的,官方网站中提供了详细的添加方法,如图2-1所示。
当你选择不同的操作系统之后,会出现在此操作系统下安装官方提供的二进制版本包的方法提示,选择相应的Linux发行版本,就会出现一个具体的界面告诉你在不同的Linux发行版本中如何安装PostgreSQL数据库。
图2-1 PostgreSQL官方安装源
在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。
在Windows下安装时,首先要到官网上下载PostgreSQL的Windows安装包,官方主库的下载界面如图2-3所示。
然后选择下载安装包的类型为“Windows”,进入Windows安装包的下载界面,在该界面中,先下载一个安装器,然后用这个安装器来下载和安装相应的PostgreSQL版本,如图2-4所示。
图2-3 PostgreSQL官方下载页面
图2-4 PostgreSQL Windows版本下载页面
因为Windows版本的安装包是由Enterprise DB公司研发的,所以下载时会跳转到Enterprise DB公司的网站上,如图2-5所示。
图2-5 PostgreSQL Windows版本下载跳转到Enterprise DB公司网站
选择相应的版本进行下载,下载完成后运行安装包(本例中为postgresql-12.1-3-windows-x64.exe),连续单击“Next”按钮完成安装,因安装过程比较简单,下面只列出了安装过程中的一些重要步骤。
开始安装时会出现选择安装组件的界面,如图2-6所示。
在图2-6所示的界面中,“PostgreSQL Server”选项是必选的,“pgAdmin 4”是图形化管理工具,“Stack Builder”是一个安装工具,通过该工具可以安装很多与PostgreSQL相关的第三方插件和工具,“Command Line Tools”是命令行工具。
在安装过程中,还会出现设置数据库超级用户密码的界面,如图2-7所示。
如果以前安装过此软件并已卸载,卸载时只会卸载数据库软件,数据库本身(如数据文件)不会被删除,再次安装时就不会出现数据库的超级用户密码设置界面,而是会直接使用原来的数据库。
连续单击回车键开始软件的安装,软件安装完成后会弹出一个对话框,可以在该对话框中选择安装结束后是否运行Stack Builder安装第三方软件包,如图2-8所示。
图2-6 选择安装组件的界面
图2-7 设置数据库超级用户密码的界面
图2-8 选择安装结束后是否运行Stack Builder
勾选该选项,如图2-8所示,就会运行Stack Builder,可以通过Stack Builder安装第三方软件包,如图2-9所示。
图2-9 Stack Builder安装第三方软件的界面
如果不知道需要安装哪些第三方软件,可以单击“取消”按钮,需要时再在运行“Stack Builder”时安装相应的第三方软件。
接下来就可以用命令行工具连接安装好的数据库了,在开始菜单中运行“SQL Shell(psql)”命令,如图2-10所示。
图2-10 运行“SQL Shell(psql)”命令
在“SQL Shell(psql)”界面中输入“Server”“Database”“Port”“User”以及密码等信息,除了输入我们之前设置的密码,其他项按默认设置就可以了。这时我们就用psql登录了数据库,如图2-11所示。
图2-11 psql运行界面
在该界面的提示符下输入“\q”就可以退出“SQL Shell(psql)”界面。后面我们会详细讲解psql的使用方法。
Windows环境下的安装是比较简单的,只需要运行图形界面,在安装的过程中基本上只需要点选“Next”项就可以完成安装。
Linux环境下PostgreSQL的安装方式则是使用相应发行版本的包管理器来进行。
前面曾提及,从发行版本安装的PostgreSQL一般不是最新版本,如果想安装最新版本的PostgreSQL,需要使用下面介绍的源码安装方法。