Установка PostgreSQL на Debian 12
PostgreSQL — это мощная объектно-реляционная система управления базами данных с открытым исходным кодом. Она использует и расширяет язык SQL, а также имеет множество функций для безопасного хранения и масштабирования самых сложных нагрузок данных.
В этом руководстве я покажу, как установить СУБД PоstgreSQL на операционной системе Debian 12. Установку будем выполнять из исходников и в качестве примера, рассмотрим установку 16 версии PоstgreSQL.
Официальный FTP — https://ftp.postgresql.org/pub/source
Установка зависимостей
Устанавливаем необходимые пакеты зависимостей:
Загрузка исходного кода
Клонируем репозиторий PostgreSQL с GitHub:
Переходим в клонированный репозиторий.
Выбор версии
По умолчанию мы находимся в ветке — master
, но для того чтобы установить желаемую версию, сперва нужно посмотреть какие доступны ветки версий, а затем уже переключится на нужную.
Посмотреть все ветки в репозитории можно командой:
В случае если необходимо выполнить сборку какой то определенной версии, то сперва можно вывести список доступных релизов:
Переключаемся на нужную ветку или конкретный релиз (в моем случае я буду устанавливать 16-тый стабильный релиз):
Переменные окружения
Добавим переменную окружения, с указанием устанавливаемой версии PostgreSQL, для того чтобы было удобнее выполнять настройку после установки (в моем случае я указываю 16):
Сборка
Выполняем настройку, которая проверит вашу систему на наличие зависимостей и соответствующим образом настроит сборку
Пояснения:
--datadir=/var/lib/postgresql/../data
→ файлы базы будут храниться здесь--bindir=/usr/lib/postgresql/../bin
→ бинарники (postgres
,pg_ctl
…) здесь--libdir=/usr/lib/postgresql/../lib
→ библиотеки здесь
Компиляция и установка
Собираем с использованием всех ядер и после устанавливаем:
Создание пользователя postgres
Добавляем системного пользователя postgres — все операции с СУБД будут выполняться под этой учетной записью. Устанавливаем для этой учетной записи пустой пароль, чтобы заблокировать вход для обычных пользователей, но с возможностью входа через root
или аккаунты с sudo
правами.
Назначаем соответствующие права доступа на домашний каталог пользователя postgres, где так же будет располагаться каталог основного кластера баз данных:
Настраиваем переменные окружения для PostgreSQL:
/etc/profile.d/postgres.sh
автоматически загружается при входе пользователей, обеспечивая глобальную доступность настроек.Создание кластера
Кластером баз данных в PostgreSQL считается совокупность баз данных, которые физически расположены в каком-нибудь каталоге.
Кодировка
При инициализации кластера нужно учитывать, что кодировка кластера задается при инициализации и не может быть изменена после создания кластера. По умолчанию при инициализации кластера используется локаль используемая в системе по умолчанию.
Посмотреть текущую локаль в системе можно командой:
К примеру если у вас локаль по умолчанию en_US.UTF-8
, а вам нужно инициализировать кластер с локалью ru_RU.UTF-8
, то сперва ее нужно добавить в систему командой — dpkg-reconfigure locales
и затем уже можно ее использовать при инициализации кластера.
Инициализация кластера
Инициализируем кластер от пользователя postgres
:
Для инициализации кластера с указанной локалью, используем команду:
-U
и -W
чтобы задать суперпользователя и пароль сразу при инициализации базы данных. По умолчанию используется имя пользователя ОС, под которым выполняется команда.Успешный вывод:
Дополнительный кластер
Сервер PostgreSQL может обслуживать несколько кластеров, для инициализации дополнительного кластера, инициализация выполняется с ключом -D
и указанием каталога данных:
Где:
/var/lib/postgresql/../another_cluster
— каталог данных (может быть любым).
Так же в файле конфигурации дополнительного кластера /var/lib/postgresql/../another_cluster/postgresql.conf
необходимо указать номер порта отличный от уже используемого кластера.
Создание службы
Создаем файл службы systemd
для PostgreSQL:
Перезагружаем конфигурацию systemd, включаем автозапуск и запускаем службу:
Установка расширений
Расширения в PostgreSQL — это модули, добавляющие новую функциональность к серверу баз данных, такие как дополнительные типы данных, функции и операторы. Некоторые расширения входят в стандартную поставку PostgreSQL и могут быть установлены из каталога contrib
находящийся в каталоге с исходниками.
Например, установим расширение tablefunc
, которое добавляет функции для работы с табличными данными.
Выполним сборку и установку:
Активируем расширение в базе данных:
Проверим, что расширение установилось:
Вывод должен содержать строку:
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
Обсуждение
Нет комментариев.