如何在CentOS 8/RHEL 8上安装PostgreSQL 11

时间:2020-02-23 14:32:11  来源:igfitidea点击:

如何在CentOS 8/RHEL 8 Linux上安装PostgreSQL 11? PostgreSQL是一个基于POSTGRES 4.2的对象关系数据库管理系统,由加利福尼亚大学伯克利分校计算机科学系开发。 PostgreSQL提供了许多现代的SQL功能,例如:复杂查询外键触发可更新视图事务完整性多版本并发控制

PostgreSQL项目为最常见的发行版提供了所有受支持版本的软件包的存储库。支持的发行版包括所有Red Hat系列,其中包括CentOS,Fedora,Scientific Linux,Oracle Linux和Red Hat Enterprise Linux。

对于PostgreSQL 12,请检查在CentOS/RHEL 8上安装PostgreSQL 12

正式维护的CentOS 8/RHEL 8上可用的PostgreSQL版本是10和9.6. 好的,添加托管所有最新发行版的PostgreSQL Yum存储库。

添加PostgreSQL Yum存储库

PostgreSQL Yum存储库将与常规系统和补丁程序管理集成,并在PostgreSQL的整个支持生命周期内为所有受支持的PostgreSQL版本提供自动更新。

可以通过运行以下命令将其添加到CentOS/RHEL 8系统中:

sudo dnf -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

通过以下方式查看软件包详细信息:

$rpm -qi pgdg-redhat-repo
Name        : pgdg-redhat-repo
Version     : 42.0
Release     : 4
Architecture: noarch
Install Date: Mon 16 Sep 2019 04:17:45 PM EDT
Group       : System Environment/Base
Size        : 6915
License     : PostgreSQL
Signature   : DSA/SHA1, Tue 16 Apr 2019 11:44:04 PM EDT, Key ID 1f16d2e1442df0f8
Source RPM  : pgdg-redhat-repo-42.0-4.src.rpm
Build Date  : Tue 16 Apr 2019 11:44:04 PM EDT
Build Host  : koji-rhel8-x86-64-pgbuild
Relocations : (not relocatable)
Vendor      : PostgreSQL Global Development Group
URL         : https://yum.postgresql.org
Summary     : PostgreSQL PGDG RPMs- Yum Repository Configuration for Red Hat/CentOS/Scientific Linux
Description :
This package contains yum configuration for Red Hat Enterprise Linux, CentOS
and Scientific Linux. and also the GPG key for PGDG RPMs.

在CentOS 8/RHEL 8 Linux系统上安装PostgreSQL 11

禁用postgresql模块。

$sudo dnf module disable postgresql
Updating Subscription Management repositories.
Last metadata expiration check: 0:03:10 ago on Mon 16 Sep 2019 04:30:11 PM EDT.
Dependencies resolved.
===================================================================================================================================================
 Package                            Arch                              Version                             Repository                          Size
===================================================================================================================================================
Disabling module streams:
 postgresql                                                           10                                                                          

Transaction Summary
===================================================================================================================================================

Is this ok [y/N]: y
Complete!

然后清理yum缓存并在CentOS 8/RHEL 8上安装PostgreSQL 11.

sudo dnf clean all

最后,通过运行以下命令在CentOS 8/RHEL 8上安装PostgreSQL 11服务器和客户端软件包。

sudo dnf -y install postgresql11-server postgresql11

可以使用dnf命令检查次要版本的详细信息。

$dnf info postgresql11-server postgresql11

初始化数据库并启用自动启动

安装后,需要先进行数据库初始化,然后才能启动服务。

sudo /usr/pgsql-11/bin/postgresql-11-setup initdb
sudo systemctl enable --now postgresql-11

确认服务已启动,没有任何错误。

$sudo systemctl status postgresql-11
● postgresql-11.service - PostgreSQL 11 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-11.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-09-16 16:41:09 EDT; 7s ago
     Docs: https://www.postgresql.org/docs/11/static/
  Process: 14929 ExecStartPre=/usr/pgsql-11/bin/postgresql-11-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
 Main PID: 14936 (postmaster)
    Tasks: 8 (limit: 24024)
   Memory: 16.9M
   CGroup: /system.slice/postgresql-11.service
           ├─14936 /usr/pgsql-11/bin/postmaster -D /var/lib/pgsql/11/data/
           ├─14937 postgres: logger   
           ├─14939 postgres: checkpointer   
           ├─14940 postgres: background writer   
           ├─14941 postgres: walwriter   
           ├─14942 postgres: autovacuum launcher   
           ├─14943 postgres: stats collector   
           └─14944 postgres: logical replication launcher   

Sep 16 16:41:09 rhel8.novalocal systemd[1]: Starting PostgreSQL 11 database server...
Sep 16 16:41:09 rhel8.novalocal postmaster[14936]: 2019-09-16 16:41:09.501 EDT [14936] LOG:  listening on IPv6 address "::1", port 5432
Sep 16 16:41:09 rhel8.novalocal postmaster[14936]: 2019-09-16 16:41:09.501 EDT [14936] LOG:  listening on IPv4 address "127.0.0.1", port 5432
Sep 16 16:41:09 rhel8.novalocal postmaster[14936]: 2019-09-16 16:41:09.505 EDT [14936] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQ>
Sep 16 16:41:09 rhel8.novalocal postmaster[14936]: 2019-09-16 16:41:09.511 EDT [14936] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
Sep 16 16:41:09 rhel8.novalocal postmaster[14936]: 2019-09-16 16:41:09.521 EDT [14936] LOG:  redirecting log output to logging collector process
Sep 16 16:41:09 rhel8.novalocal postmaster[14936]: 2019-09-16 16:41:09.521 EDT [14936] HINT:  Future log output will appear in directory "log".
Sep 16 16:41:09 rhel8.novalocal systemd[1]: Started PostgreSQL 11 database server.

PostgreSQL 11文件是:

/var/lib/pgsql/11/data/postgresql.conf

通读文件以查看可以打开/关闭的设置。提交更改后,应重新启动服务。

设置PostgreSQL管理员用户密码

设置PostgreSQL管理员用户

$sudo su - postgres 
[theitroad@localhost ~]$psql -c "alter user postgres with password 'StrongPassword'" 
ALTER ROLE
[theitroad@localhost ~]$

创建测试用户和数据库

[theitroad@localhost ~]$psql
psql (11.5)
Type "help" for help.

postgres-# createuser test_user
postgres-# alter user test_user with password 'MyDBpassword';
postgres=# createdb test_db -O test_user
postgres=# grant all privileges on database test_db to test_user;
GRANT

以" test_user"用户身份登录,尝试在数据库上创建表。

$psql -U test_user -h localhost -d test_db

安装pgAdmin 4 Web界面

pgAdmin是领先的开源功能丰富的PostgreSQL管理和开发平台,可在Linux,Unix,Mac OS X和Windows上运行。