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

PostgreSQL − объектно-реляционная система управления базами данных (СУБД) с открытым исходным кодом, соответствующая стандартам SQL. С помощью пользовательских функций и типов данных PostgreSQL поддерживает сложные запросы, репликацию и расширяемость. В PostgreSQL встроены механизмы защиты данных − контроль изоляции транзакций (MVCC) и ролевая модель управления доступом.

Благодаря хорошей масштабируемости PostgreSQL активно используется в высоконагруженных системах, аналитике и веб-приложениях. При этом сообщество PostgreSQL регулярно выпускает обновления, обеспечивая безопасность и добавляя на постоянной основе новые возможности.

В статье разберём, как установить PostgreSQL на виртуальный сервер, работающий под управлением Debian 12.

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

Перед установкой в систему нового программного обеспечения рекомендуется обновить список пакетов, доступных из репозиториев Debian на данный момент:

$ sudo apt update

После чего установите PostgreSQL:

$ sudo apt install postgresql postgresql-contrib

В данном случае команда проинсталлирует основную СУБД PostgreSQL, включая серверную часть и базовые утилиты, а также дополнительные модули и утилиты (postgresql-contrib), в число которых входят:

  • uuid-ossp − расширение для генерации UUID;
  • hstore − модуль для работы с key-value хранилищами;
  • pg_stat_statements − модуль для расширенного мониторинга SQL-запросов;
  • citext − расширение для регистронезависимых строк;
  • pgcrypto − модуль для шифрования и хеширования.

После окончания установки проверьте статус службы postgresql:

$ systemctl status postgresql

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

Вывод состояния службы postgresql - Как установить PostgreSQL на Debian

При инсталляции PostgreSQL создаёт учётную запись postgres. Следующей командой переключите текущего пользователя на пользователя postgres с предоставлением ему его окружения и прав:

$ sudo -i -u postgres

После чего запустите командную строку PostgreSQL:

$ psql

Приглашение для ввода команд в интерфейсе PostgreSQL выглядит как postgres=#:

Приглашение для ввода команд в интерфейсе PostgreSQL

Используя командную строку, вы можете, например, вывести версию PostgreSQL:

SELECT version();

В нашем примере вывод команды выглядит следующим образом:

Вывод версии PostgreSQL в командной строке

Для выхода из командной строки используйте команду:

\q

Настройка внешнего подключения (опционально)

По умолчанию PostgreSQL принимает соединения только с localhost. Если вам нужен доступ с другого устройства, требуется разрешить внешние подключения.

Чтобы это сделать, откройте для редактирования файл postgresql.conf:

$ sudo nano /etc/postgresql/15/main/postgresql.conf

В файле отыщите строку:

# listen_addresses = 'localhost'

Снимите с неё комментарий и вместо localhost установите символ *:

listen_addresses = '*'

Символ * означает, что PostgreSQL будет принимать соединения с любых IP-адресов.

Если вам нужно разрешить подключение только с конкретного IP-адреса, укажите его через запятую после localhost:

listen_addresses = 'localhost,10.10.101.11'

В данном случае замените 10.10.101.11 на IP-адрес узла, с которого нужно разрешить подключение к PostgreSQL.

Затем, находясь в том же каталоге, откройте файл pg_hba.conf:

$ sudo nano /etc/postgresql/15/main/pg_hba.conf

И добавьте в него строку, разрешающую доступ для всех IP-адресов:

host all all 0.0.0.0/0 md5

Если нужно ограничить доступ только определённой подсетью, например, 10.10.101.0/24, то укажите её в этой строке:

host all all 10.10.101.0/24 md5

Чтобы минимизировать возможности несанкционированного доступа к вашим данным, не открывайте доступ к PostgreSQL для всех возможных IP-адресов (0.0.0.0/0), если это не нужно! Более безопасная практика − указание конкретных IP-адресов.

Для применения внесённых изменений перезагрузите службу PostgreSQL:

$ sudo systemctl restart postgresql

Настройка брандмауэра UFW

Если ваша система защищена брандмауэром UFW, необходимо разрешить в брандмауэре доступ к серверу через порт PostgreSQL. Стандартным портом PostgreSQL является TCP-порт 5432. Добавление разрешающего правила для этого порта осуществляется командой:

$ sudo ufw allow 5432/tcp

Для применения новой настройки перезапустите конфигурацию брандмауэра:

$ sudo ufw reload

Вам также может понравиться