6.5.4 PostgreSQL: введение и установка

Postgre Banner

PostgreSQL – это мощная, открытая объектно-реляционная система управления базами данных (СУБД), предназначенная для хранения, обработки и управления большими объемами данных. Разработанный с акцентом на расширяемость и совместимость со стандартом SQL, PostgreSQL поддерживает как реляционные, так и некоторые NoSQL-функции, такие как хранение JSON-данных и ключ-значение. Ее основное назначение – предоставлять безопасное и надежное решение для хранения данных, которое позволяет пользователям эффективно управлять сложными транзакциями и выполнять анализ данных в режиме реального времени.

Основные плюсы и минусы:
  • Высокая совместимость с SQL. PostgreSQL поддерживает практически все функции стандартного SQL, что делает его удобным для разработки сложных запросов и транзакций.
  • Надежность и соответствие ACID-стандартам. Поддержка ACID (атомарность, согласованность, изоляция, долговечность) делает PostgreSQL устойчивым и предсказуемым при обработке критичных данных.
  • Расширяемость. PostgreSQL позволяет пользователям добавлять свои функции, что полезно для специфических задач и настройки под уникальные требования.
  • Поддержка JSON и NoSQL. Помимо реляционных данных, PostgreSQL также поддерживает JSON-данные, что делает его удобным для гибридных приложений, где требуются как реляционные, так и документно-ориентированные данные.
  • Сложность настройки. PostgreSQL иногда требует более сложной настройки и управления по сравнению с другими СУБД, что может потребовать опыта в администрировании.
  • Ресурсоемкость. Из-за широкого набора возможностей и совместимости PostgreSQL может потреблять больше ресурсов, чем другие СУБД, особенно при обработке крупных объемов данных.

Использование PostgreSQL оправдано, когда проект нуждается в стабильной, масштабируемой базе данных с расширенными возможностями работы с SQL и гибкостью для разнообразных данных.

Установка на Linux

В этом примере мы будем устанавливать PostgreSQL на Ubuntu 22.04. Данный процесс состоит из стандартных шагов: обновление системы, добавление официального репозитория PostgreSQL, установка и настройка базы данных. Мы также рассмотрим возможные нюансы, с которыми можно столкнуться.

1. Обновите систему. Перед установкой PostgreSQL убедитесь, что пакеты обновлены до актуальной версии. Это помогает избежать ошибок совместимости:

sudo apt update && sudo apt upgrade -y

2. Добавьте официальный репозиторий PostgreSQL. Ubuntu 22.04 может не включать последнюю версию PostgreSQL в своих стандартных репозиториях, поэтому имеет смысл добавить официальный репозиторий PostgreSQL:

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

3. Добавьте ключ для репозитория. Без добавления ключа системы безопасности установка пакетов может завершиться ошибкой:

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

4. Теперь обновите список пакетов, чтобы включить репозиторий PostgreSQL:

sudo apt update

5. Установите PostgreSQL, указав нужную версию (замените 14 на другую версию, если хотите установить её):

sudo apt install postgresql-14 postgresql-contrib

Учтите: Пакет postgresql-contrib устанавливает дополнительные расширения для PostgreSQL, такие как pgcrypto для шифрования и tablefunc для продвинутой работы с таблицами.

6. Проверьте статус службы:

После установки служба PostgreSQL должна запуститься автоматически. Проверьте её статус:

sudo systemctl status postgresql

Если служба не запустилась, попробуйте запустить её командой:

sudo systemctl start postgresql

7. PostgreSQL по умолчанию работает с пользователем postgres. Чтобы переключиться на этого пользователя и запустить клиент psql, используйте:

sudo -i -u postgres
psql

8. Внутри клиентского интерфейса psql вы можете создавать новые базы данных и пользователей для удобного управления. Пример создания пользователя и базы данных:

CREATE USER exampleuser WITH PASSWORD 'examplepassword';
CREATE DATABASE exampledb OWNER exampleuser;

9. По умолчанию PostgreSQL принимает только локальные соединения. Отредактируйте конфигурационный файл postgresql.conf, чтобы разрешить внешние подключения:

sudo nano /etc/postgresql/14/main/postgresql.conf

В строке listen_addresses замените localhost на *, чтобы PostgreSQL принимал запросы с любых IP:

listen_addresses = '*'

Дополнительно: * разрешит всем доступным IP-интерфейсам (IPv4 и IPv6) принимать запросы. Чтобы прослушивать только IPv4 установите 0.0.0.0, тогда как :: разрешает прослушивать все адреса IPv6.

Затем откройте файл pg_hba.conf, чтобы указать допустимые IP-адреса для доступа:

sudo nano /etc/postgresql/14/main/pg_hba.conf

Добавьте следующую строку для разрешения внешних подключений по паролю:

host    all             all             0.0.0.0/0            md5

10. Чтобы применить изменения, перезапустите PostgreSQL:

sudo systemctl restart postgresql

На этом установка и базовая настройка PostgreSQL на Ubuntu 22.04 завершены. У Вас имеется рабочая СУБД и созданной базой и пользователем и разрешенными извне подключениями (с паролем).

Совет: детальнее про удаленную работу с БД Вы можете ознакомиться в этой статье.

Установка на Windows

1. Скачайте установщик – перейдите на официальный сайт PostgreSQL и выберите последний установщик для Windows. Обычно это .exe файл.

2. Дважды щелкните по загруженному файлу, чтобы начать процесс установки. Программа-установщик откроет мастер установки.

3. По умолчанию PostgreSQL установится в C:\Program Files\PostgreSQL\ с папкой для версии. При необходимости можно изменить путь, но мы рекомендуем без необходимости придерживаться стандартного пути.

4. Установщик предложит выбрать компоненты для установки:

Postgre Installer Components

  • PostgreSQL Server – обязателен для работы.
  • pgAdmin – графический интерфейс для управления и работы с БД.
  • Command Line Tools – полезны для работы в командной строке.
  • Stack Builder – инструмент для установки дополнительных плагинов и расширений.

Обычно можно без раздумий выбрать все компоненты.

5. Настройте пароль суперпользователя postgres Установщик запросит пароль для учетной записи postgres. Запомните его — это главный аккаунт с доступом ко всем возможностям базы данных.

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

7. Установщик предложит выбрать параметры локализации (локаль и регион), влияющие на сортировку и сравнение данных в БД. Обычно можно оставить значение по умолчанию.

8. После проверки параметров нажмите Next для запуска установки. Дождитесь завершения установки и нажмите Finish.

Запуск и подключение через pgAdmin

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

Запустите pgAdmin, добавьте сервер PostgreSQL, используя localhost и указанный ранее порт (5432 по умолчанию), и введите пароль суперпользователя postgres.

PGAdmin, внешний вид
Внешний вид программы pgAdmin

Если все прошло успешно, с этого момента PostgreSQL установлен и готов к работе.