Установка 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 ActiveActive: 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Введем пароль:
PaSSw0Rdpsql (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-адреса;
- Проверили работоспособность удаленного доступа.
Добавить комментарий