Установка 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