Пост

Установка PostgreSQL 13 в CentOS 8

PostgreSQL — свободная объектно-реляционная система управления базами данных. Обновления для этой ветки будут выходить в течение пяти лет до ноября 2025 года.

Установка PostgreSQL 13

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

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

Отключаем модуль PostgreSQL в предустановленно по-умолчанию репозитории AppStream

1
$ sudo dnf -qy module disable postgresql

Проверяем

1
2
3
4
$ sudo dnf module list | grep postgresql
postgresql    9.6 [x]     client, server [d]   PostgreSQL server and client module
postgresql    10 [d][x]   client, server [d]   PostgreSQL server and client module
postgresql    12 [x]      client, server [d]   PostgreSQL server and client module

Устанавливаем PostgreSQL 13

1
$ sudo dnf -y install postgresql13 postgresql13-server

Инициализируем базу

1
2
$ sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
Initializing database … OK

Основной конфиг PostgreSQL расположен тут: /var/lib/pgsql/13/data/postgresql.conf

1
2
3
4
$ 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 и добавляем сервис в автозагрузку

1
$ sudo systemctl enable --now postgresql-13

Проверяем статус

1
$ systemctl status postgresql-13

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

1
2
3
4
$ sudo su - postgres 
$ psql -c "alter user postgres with password 'StrongDBPassword'"
ALTER ROLE
$ exit

Работа с базой / пользователями

Переключаемся на пользователя postgres

1
$ sudo su - postgres

Создаем пользователя БД

1
$ createuser userdb

Переключаемся в PostgreSQL shell

1
$ psql

Задаем пароль для пользователя БД

1
=# ALTER USER userdb WITH ENCRYPTED password 'aaayoupasswdaaa';

Создам базу и задаем владельца базы

1
2
3
=# CREATE DATABASE mybase WITH ENCODING='UTF8' OWNER=userdb;
=# \q
$ exit

Настройка PostgreSQL 13

Настраиваем возможность подключения к БД из др. хоста. Для этого редактируем конфигурационный файл /var/lib/pgsql/13/data/postgresql.conf и устанавливаем в качестве параметра Listen address IP-адрес сервера, или * - для всех сетевых интерфейсов

1
2
3
4
$ sudo nano /var/lib/pgsql/13/data/postgresql.conf
...
listen_addresses = '192.168.11.200'
...

Настраиваем параметры авторизации

1
2
3
4
5
$ sudo nano /var/lib/pgsql/13/data/pg_hba.conf
...
# Accept from trusted subnet
host all all 192.168.11.0/24 md5
...

Перезапускаем PostgreSQL

1
$ sudo systemctl restart postgresql-13

Тестируем подключение

1
2
$ sudo su - postgres
$ psql -U <dbuser> -h <serverip> -p 5432 <dbname>

Настройка Firewall

Открываем порт 5432

1
2
$ sudo firewall-cmd --zone=public --add-port=5432/tcp --permanent
$ sudo firewall-cmd --reload
Авторский пост защищен лицензией CC BY 4.0 .

© IT Draft. Некоторые права защищены.