Как установить PostgreSQL 13 на CentOS 8 | RHEL 8

Как установить PostgreSQL 13 на CentOS 8 | RHEL 8

 

В этом руководстве мы рассмотрим установку PostgreSQL 13 на CentOS 8 | Сервер Linux RHEL 8. PostgreSQL — это мощная объектно-реляционная база данных с открытым исходным кодом, которая безопасно хранит и масштабирует самые сложные рабочие нагрузки с данными. Система баз данных PostgreSQL предназначена для обеспечения надежности, целостности данных, надежного набора функций и расширяемости. За его разработкой стоит большое сообщество, чтобы гарантировать инновации и прочную репутацию.

Установите PostgreSQL 13 на CentOS 8 | RHEL 8

С момента обновления этой статьи PostgreSQL 13 доступен для выполнения производственных рабочих нагрузок. Все программные пакеты доступны в репозитории YUM, официально поддерживаемом командой PostgreSQL, процесс установки упрощен.

Перед началом установки убедитесь, что у вас установлена ​​последняя версия CentOS 8 | Система Linux RHEL 8. Вы можете запустить команду yum update, чтобы получить последние обновления.

sudo yum -y update
sudo systemctl reboot

После перезагрузки системы начните установку PostgreSQL 13 на CentOS 8 | Сервер RHEL 8.

Шаг 1. Добавьте репозиторий PostgreSQL Yum

Репозиторий YUM поддерживает как CentOS, так и семейство RHEL дистрибутивов Linux. После добавления он будет предоставлять автоматические обновления для всех поддерживаемых версий PostgreSQL в течение всего срока поддержки PostgreSQL.

Выполните следующие команды, чтобы добавить репозиторий, который предоставляет пакеты PostgreSQL, на ваш сервер CentOS / RHEL 8.

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

Примите установку, когда будет предложено, нажав клавишу y на клавиатуре.

ependencies resolved.
==================================================================================================================================================================
 Package                                     Architecture                      Version                              Repository                               Size
==================================================================================================================================================================
Installing:
 pgdg-redhat-repo                            noarch                            42.0-14                              @commandline                             11 k

Transaction Summary
==================================================================================================================================================================
Install  1 Package

Total size: 11 k
Installed size: 11 k
Is this ok [y/N]: y

Шаг 2. Установите PostgreSQL 13 на CentOS 8 | RHEL 8

Нам нужно отключить репозиторий PostgreSQL AppStream в CentOS 8 | RHEL 8 Linux, который содержит другую версию PostgreSQL.

sudo dnf -qy module disable postgresql

Подтвердите список включенных репозиториев.

$ sudo dnf repolist
repo id                                                       repo name
AppStream                                                     CentOS-8 - AppStream
BaseOS                                                        CentOS-8 - Base
extras                                                        CentOS-8 - Extras
pgdg-common                                                   PostgreSQL common RPMs for RHEL/CentOS 8 - x86_64
pgdg10                                                        PostgreSQL 10 for RHEL/CentOS 8 - x86_64
pgdg11                                                        PostgreSQL 11 for RHEL/CentOS 8 - x86_64
pgdg12                                                        PostgreSQL 12 for RHEL/CentOS 8 - x86_64
pgdg13                                                        PostgreSQL 13 for RHEL/CentOS 8 - x86_64
pgdg95                                                        PostgreSQL 9.5 for RHEL/CentOS 8 - x86_64
pgdg96                                                        PostgreSQL 9.6 for RHEL/CentOS 8 - x86_64

Проверьте, доступны ли в репозитории пакеты PostgreSQL 13.

$ sudo yum search postgresql13
Last metadata expiration check: 0:00:45 ago on Sat 31 Oct 2020 08:04:30 AM CET.
=============================================================== Name Exactly Matched: postgresql13 ===============================================================
postgresql13.x86_64 : PostgreSQL client programs and libraries
=================================================================== Name Matched: postgresql13 ===================================================================
postgresql13-docs.x86_64 : Extra documentation for PostgreSQL
postgresql13-libs.x86_64 : The shared libraries required for any PostgreSQL clients
postgresql13-test.x86_64 : The test suite distributed with PostgreSQL
postgresql13-devel.x86_64 : PostgreSQL development header files and libraries
postgresql13-pltcl.x86_64 : The Tcl procedural language for PostgreSQL
postgresql13-plperl.x86_64 : The Perl procedural language for PostgreSQL
postgresql13-server.x86_64 : The programs needed to create and run a PostgreSQL server
postgresql13-contrib.x86_64 : Contributed source and binaries distributed with PostgreSQL
postgresql13-llvmjit.x86_64 : Just-in-time compilation support for PostgreSQL

Теперь установите пакеты PostgreSQL 13 на свой CentOS 8 | Сервер RHEL 8 — и серверный, и клиентский.

sudo dnf install postgresql13 postgresql13-server

Согласитесь на установку, если вас это устраивает.

Dependencies resolved.
==================================================================================================================================================================
Package Architecture Version Repository Size
==================================================================================================================================================================
Installing:
postgresql13 x86_64 13.0-1PGDG.rhel8 pgdg13 1.4 M
postgresql13-server x86_64 13.0-1PGDG.rhel8 pgdg13 5.5 M
Installing dependencies:
libicu x86_64 60.3-2.el8_1 BaseOS 8.8 M
postgresql13-libs x86_64 13.0-1PGDG.rhel8 pgdg13 411 k

Transaction Summary
==================================================================================================================================================================
Install 4 Packages

Total download size: 16 M
Installed size: 63 M
Is this ok [y/N]: y

Также требуется репозиторий ключей GPG .

Total                                                                                                                              13 MB/s |  16 MB     00:01
warning: /var/cache/dnf/pgdg13-e81daebfc8b779ec/packages/postgresql13-13.0-1PGDG.rhel8.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY
PostgreSQL 13 for RHEL/CentOS 8 - x86_64                                                                                          1.6 MB/s | 1.7 kB     00:00
Importing GPG key 0x442DF0F8:
 Userid     : "PostgreSQL RPM Building Project <[email protected]>"
 Fingerprint: 68C9 E2B9 1A37 D136 FE74 D176 1F16 D2E1 442D F0F8
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Is this ok [y/N]: y

Шаг 3. Инициализируйте и запустите службу базы данных

Перед использованием сервера базы данных требуется инициализация базы данных PostgreSQL.

 

$ sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
Initializing database ... OK

Основной файл конфигурации базы данных /var/lib/pgsql/13/data/postgresql.conf

$ ls  /var/lib/pgsql/13/data/
base    pg_commit_ts  pg_ident.conf  pg_notify    pg_snapshots  pg_subtrans  PG_VERSION  postgresql.auto.conf
global  pg_dynshmem   pg_logical     pg_replslot  pg_stat       pg_tblspc    pg_wal      postgresql.conf
log     pg_hba.conf   pg_multixact   pg_serial    pg_stat_tmp   pg_twophase  pg_xact

Запустите сервер базы данных PostgreSQL и настройте его на запуск при загрузке.

$ sudo systemctl enable --now postgresql-13
Created symlink /etc/systemd/system/multi-user.target.wants/postgresql-13.service → /usr/lib/systemd/system/postgresql-13.service.

Проверьте статус службы, чтобы убедиться, что она запущена.

$ systemctl status postgresql-13
● postgresql-13.service - PostgreSQL 13 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-13.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-07-09 23:35:30 CEST; 37s ago
     Docs: https://www.postgresql.org/docs/13/static/
  Process: 1860 ExecStartPre=/usr/pgsql-13/bin/postgresql-13-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
 Main PID: 1865 (postmaster)
    Tasks: 8 (limit: 12210)
   Memory: 17.3M
   CGroup: /system.slice/postgresql-13.service
           ├─1865 /usr/pgsql-13/bin/postmaster -D /var/lib/pgsql/13/data/
           ├─1867 postgres: logger
           ├─1869 postgres: checkpointer
           ├─1870 postgres: background writer
           ├─1871 postgres: walwriter
           ├─1872 postgres: autovacuum launcher
           ├─1873 postgres: stats collector
           └─1874 postgres: logical replication launcher

Jul 09 23:35:30 centos-01.computingforgeeks.com systemd&#91;1]: Starting PostgreSQL 13 database server...
Jul 09 23:35:30 centos-01.computingforgeeks.com postmaster&#91;1865]: 2020-07-09 23:35:30.180 CEST &#91;1865] LOG:  redirecting log output to logging collector process
Jul 09 23:35:30 centos-01.computingforgeeks.com postmaster&#91;1865]: 2020-07-09 23:35:30.180 CEST &#91;1865] HINT:  Future log output will appear in directory "log".
Jul 09 23:35:30 centos-01.computingforgeeks.com systemd&#91;1]: Started PostgreSQL 13 database server.

Шаг 4. Установите пароль администратора PostgreSQL

Обновите пароль администратора PostgreSQL.

$ sudo su - postgres 
]$ psql -c "alter user postgres with password 'StrongDBPassword'"
ALTER ROLE

Шаг 5. Включение удаленных подключений к базе данных (необязательно)

Отредактируйте файл  /var/lib/pgsql/13/data/postgresql.conf и установите для параметра Listen address IP-адрес вашего сервера или « * » для всех интерфейсов.

$ sudo vi /var/lib/pgsql/13/data/postgresql.conf
# line 59
listen_addresses = '192.168.10.10'

Также настройте PostgreSQL на прием удаленных подключений.

$ sudo vi /var/lib/pgsql/13/data/pg_hba.conf

# Accept from anywhere (not recommended)
host all all 0.0.0.0/0 md5

# Accept from trusted subnet (Recommended setting)
host all all 192.168.18.0/24 md5

После сохранения изменений перезапустите службу базы данных.

sudo systemctl restart postgresql-13

Проверьте соединение с помощью команды psql, указав имя пользователя и, возможно, имя базы данных.

$ psql -U <dbuser> -h <serverip> -p 5432 <dbname>

Шаг 6. Установите веб-интерфейс pgAdmin 4.

pgAdmin — это ведущая многофункциональная платформа для администрирования и разработки PostgreSQL с открытым исходным кодом, работающая в Linux, Unix, Mac OS X и Windows. Вот ссылка для установки pgAdmin4 на CentOS.

Как установить pgAdmin 4 в CentOS 8 Linux