文章目录
上一篇简单介绍了 PostgreSQL 数据库。PostgreSQL 支持各种平台,包括 Linux 、Windows、FreeBSD、OpenBSD、NetBSD、macOS、AIX、HP/UX 以及 Solaris。不同的平台支持不同的安装方法,通常可以分为以下几类:
- 二进制安装包,通过官方下载页面,选择相应的操作系统版本进行下载安装。某些操作系统(Windows、macOS)提供了图形化的安装工具。
- 源码编译安装,适合高级用户,通过 ftp 文件浏览器或者 git.postgresql.org 下载源文件代码,参考官方文档执行源码安装。
- 第三方发行版,同样通过官方下载页面,可以找到许多第三方提供的打包软件,例如 LAPP 组合。
本文主要介绍如何通过 Yum 源安装 PostgreSQL 软件,这种方式适用于所有的 Red Hat Linux 家族以及衍生版:
- Red Hat Enterprise Linux
- CentOS
- Fedora
- Scientific Linux
- Oracle Linux
接下来我们基于 CentOS 7 X86_64 安装 PostgreSQL 11。第一步就是下载并安装 Yum 源,在下载页面点击“Linux -
Red Hat family Linux (including CentOS/Fedora/Scientific/Oracle variants)”,然后在页面选择相应的 PostgreSQL 版本和操作系统平台。
按照第 4 步提供的命令安装 Yum 源(使用 root 用户执行操作):
yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm
提示输入信息时,输入 “y” 即可。
安装之前先确认是否已经存在 PostgreSQL:
rpm -qa | grep postgres
如果存在,使用以下命令删除之前的安装包:
rpm -e postgresqlXX
然后安装页面提示执行第 5 步安装 PostgreSQL 客户端和依赖库:
yum install postgresql11
接下来第 6 步是安装 PostgreSQL 服务器:
yum install postgresql11-server
至此,完成了软件的安装。第 7 步是初始化一个数据库,并且启动 PostgreSQL 服务和开机后的自启动:
/usr/pgsql-11/bin/postgresql-11-setup initdb
systemctl enable postgresql-11
systemctl start postgresql-11
执行完成后,可以通过操作系统的 ps 命令查看 PostgreSQL 后台进程:
[root@centos7 ~]# ps -ef | grep postgres | grep -v 'grep'
postgres 29118 1 0 16:57 ? 00:00:00 /usr/pgsql-11/bin/postmaster -D /var/lib/pgsql/11/data/
postgres 29120 29118 0 16:57 ? 00:00:00 postgres: logger
postgres 29122 29118 0 16:57 ? 00:00:00 postgres: checkpointer
postgres 29123 29118 0 16:57 ? 00:00:00 postgres: background writer
postgres 29124 29118 0 16:57 ? 00:00:00 postgres: walwriter
postgres 29125 29118 0 16:57 ? 00:00:00 postgres: autovacuum launcher
postgres 29126 29118 0 16:57 ? 00:00:00 postgres: stats collector
postgres 29127 29118 0 16:57 ? 00:00:00 postgres: logical replication launcher
通过以上输出,可以看出 PostgreSQL 安装在“/usr/pgsql-11”目录中,初始化数据库的数据目录为“/var/lib/pgsql/11/data”。同时,操作系统创建了一个新的用户“postgres”。
除此之外,还可以安装一些第三方的扩展包和管理工具:
yum install postgresql11-contrib
yum pgadmin4
最后,使用命令行工具“psql”测试数据库的连接:
[root@centos7 ~]# su - postgres
Last login: Fri Jan 4 17:19:04 EST 2019 on pts/3
-bash-4.2$ psql
psql (11.1)
Type "help" for help.
postgres=# select version();
version
---------------------------------------------------------------------------------------------------------
PostgreSQL 11.1 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit
(1 row)
postgres=#
默认情况下,PostgreSQL 只接收本机的连接请求。如果需要通过远程客户端进行连接,可以执行以下两个步骤(使用 postgres 用户操作):
- 修改 postgresql.conf 文件中的监听地址,该文件位于数据目录(/var/lib/pgsql/11/data/)中。
找到以下内容:
将 ‘localhost’ 修改为服务器的 IP 地址或者 ‘*’:#listen_addresses = 'localhost' # what IP address(es) to listen on;
listen_addresses = '192.68.56.103'
- 修改 pg_hba.conf 文件中的客户端认证配置,该文件位于数据目录(/var/lib/pgsql/11/data/)中。
增加以下内容,允许所有客户端 IP 访问:
重启服务即可(使用 root 用户操作):host all all 0.0.0.0/0 md5
systemctl restart postgresql-11
对于 Windows 和 macOS 用户,推荐使用图形化工具进行安装。可以通过官方下载页面找到相应操作系统的链接。也可以直接使用以下链接进行安装。
人生本来短暂,你又何必匆匆!点个赞再走吧!