Информатика

Информатика
Вопрос
Как установить PostgreSQL 12 на CentOS 8 | RHEL 8
Ответ

Установка пакетов PostgreSQL 12

Добавляем в систему репозиторий PostgreSQL:

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

Проверяем список доступных потоков модуля PostgreSQ

sudo dnf module list postgresql

Результат:

Last metadata expiration check: 0:06:00 ago on Mon 25 Oct 2021 01:15:21 AM EDT.
CentOS Linux 8 - AppStream
Name         Stream   Profiles             Summary
postgresql   9.6      client, server [d]   PostgreSQL server and client module
postgresql   10 [d]   client, server [d]   PostgreSQL server and client module
postgresql   12       client, server [d]   PostgreSQL server and client module
postgresql   13       client, server [d]   PostgreSQL server and client module

Отключаем модули PostgreSQL с более старой версией, присутствующие в системе:

sudo dnf -qy module disable postgresql

Устанавливаем сервер PostgreSQL 12:

sudo dnf install -y postgresql12-server postgresql12

Начальная конфигурация PostgreSQL 12

Инициализируем базу данных:

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

Результат:

Initializing database … OK

Главный конфигурационный файл /var/lib/pgsql/12/data/postgresql.conf

Запускаем и включаем автозапуск службы PostgreSQL

sudo systemctl enable --now postgresql-12

Результат:

Created symlink /etc/systemd/system/multi-user.target.wants/postgresql-12.service → /usr/lib/systemd/system/postgresql-12.service.

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

sudo systemctl status postgresql-12

Устанавливаем пароль для пользователя postgres:

sudo su - postgres
psql -c "alter user postgres with password 'StrongDBPassword'"
ALTER ROLE
exit
logout

Включение удаленных подключений к базе данных

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

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

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

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

local all postgres md5

# 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-12

Чтобы использовать Брандмауэр, запускаем службу

sudo systemctl enable --now firewalld

Добавляем правила

sudo firewall-cmd --add-service=postgresql --permanent

Перезагружаем Брандмауэр

sudo firewall-cmd --reload

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

sudo psql -U  -h  -p 5432
sudo psql -U postgres -W -d postgres

Проверка с удаленного хоста

psql -h 10.10.0.5 -U postgres -W -d postgres
Базы данных
Продолжить чтение

Как установить PostgreSQL в Linux