Понедельник, 26.01.2026 19:00

Установка PostgreSQL в РЕДОС

Установка PostgreSQL в РЕДОС

С переходом на отечественное программное обеспечение перед разработчиками и администраторами встала проблема альтернативы. Долгое время в корпоративных сетях эксплуатировались СУБД от Microsoft и Oracle. Но с введением санкций и их ужесточением, а особенно после панического бегства западных IT-гигантов из России с односторонним прекращения поддержки своих продуктов на территории нашей страны встал вопрос о замене данных СУБД. 

На сегодняшний день, когда речь заходит о высокопроизводительной СУБД с возможностью объединения в кластер работающих в операционной системе семейства Linux, других альтернатив кроме PostgreSQL нет.

Сегодня мы рассмотрим установку сервера PosgreSQL 16 в РЕДОС Linux.

Установка

Установим требуемые пакеты:

sudo dnf update
sudo dnf install postgresql16-server -y

Произведем инициализацию базы данных:

sudo postgresql-16-setup initdb

Установим автозапуск для службы СУБД:

sudo systemctl enable postgresql-16.service --now

Проверим статус службы:

sudo systemctl status postgresql-16.service | grep Active
Active: active (running) since Fri 2026-01-23 15:18:57 MSK; 1s ago

Должно быть:

active (running)

Удаленный доступ к БД

Настройка прослушиваемых адресов

Чтобы подключиться к БД с помощью pgAdmin или HeidiSQL нужно произвести дополнительную настройку сервера.

Добавим в конец файла /var/lib/pgsql/16/data/postgresql.conf строку:

listen_addresses = '*'

Запустим:

echo "listen_addresses = '*' " | sudo tee -a /var/lib/pgsql/16/data/postgresql.conf

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

Для пользователя postgres необходимо установить пароль, чтобы повысить безопасность и позволить администратору удаленно подключаться к серверу с этой учетной записью.

Обратите внимание! Не рекомендуется подключаться и вообще использовать учетную запись при удаленной работе с postgresql! Используйте для удаленного доступа отдельно созданную учетную запись базы данных!

Запустим консоль Postgresql. Для доступа к консоли psql на нужно переключиться на пользователя postrgres

sudo su - postgres

Командная строка измениться:

[postgres@localhost ~]$

Запустим консоль:

psql
\psql (16.11)
Введите "help", чтобы получить справку.
postgres=#

Запустим команду:

ALTER USER postgres WITH ENCRYPTED PASSWORD 'PaSSw0Rd';

Обратите внимание! Обязательно замените PaSSw0Rd на сложный пароль!

Выйдем из консоли:

exit

Выйдем из учетной записи postgres:

exit

Перезапустим службу:

sudo systemctl restart postgresql-16.service

Разрешаем удаленный доступ к СУБД

В отличии от MySQL в Postgresql разрешения на удаленный доступ прописываются в отдельном файле:

/var/lib/pgsql/16/data/pg_hba.conf

С помощью данного файла вы может разрешить доступ к конкретной базе данных, указанному пользователю с определенного IP-адреса.

В целом формат записей в данном файла таков:

# TYPE DATABASE USER ADDRESS METHOD

Допустим, нам нужно предоставить удаленный доступ С ПК администратора 192.168.1.40, для этого нужно добавить строку:

host all postgres 192.168.1.40/32 md5

Если вы хотите разрешить доступ для любого пользователя к любой БД с указанного IP-адреса, нужно добавить строку:

host all all 192.168.1.40/32 md5

Предоставим администратору доступ к любой БД для пользователя postgres:

Добавим в файл pg_hba.conf строку:

echo "host all postgres 192.168.1.40/32 md5" | sudo tee -a /var/lib/pgsql/16/data/pg_hba.conf

Перезапустим службу

sudo systemctl restart postgresql-16.service

Проверка удаленного доступа к Postgresql из консоли Linux

Для того чтобы проверить работу, вы можете на другом сервере РЕДОС установить только клиент Postgresql

sudo dnf install postgresql

Проверим подключение, допустим, что адрес сервера Postgresql у нас 192.168.1.40 и мы разрешили этому ip-адресу доступ в файле pg_hba.conf.

На другом сервере запустим:

psql --host=192.168.1.21 --username=postgres

Введем пароль:

PaSSw0Rd
psql (15.15 (Debian 15.15-0+deb12u1), server 16.11)
WARNING: psql major version 15, server major version 16.
Some psql features might not work.
Type "help" for help.
postgres=#

В моем случае я тестировал подключение с сервера с Debian Linux с версией Postgresql 15. Поэтому и выведено такое предупреждение, но в целях тестирования подключения этого более чем достаточно.

Проверим работоспособность. В консоли psql выполним запросы:

select version();

Результат:

version
------------------------------------------------------------------------------------------------------------
 Postgresql 16.11 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 13.3.1 20250418 (RED SOFT 13.3.1-3), 64-bit

Чтобы выйти нажмите Q.

SELECT CURRENT_USER, CURRENT_ROLE, USER;
current_user | current_role | user
--------------+--------------+----------
 postgres | postgres | postgres
(1 row)

Удаленный доступ работает.

Заключение

Сегодня мы рассмотрели установку PostgreSQL 16 в РЕДОС Linux:

- Установили требуемые пакеты;

- Настроили автозапуск сервера;

- Разрешили удаленный доступ к серверу;

- Рассмотрели файл pg_hba.conf с помощью которого определяется доступ к конкретной БД, указанного пользователя с определенного ip-адреса;

- Проверили работоспособность удаленного доступа.

Категория РЕД ОС Linux

Добавить комментарий

Простой текст

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.
Просмотров: 99