Давайте дружить в Телеграме: рассказываем про новые фичи, общаемся в комментах, прислушиваемся к вашим идеям Подписаться

Установка PostgreSQL на Debian

Команда Timeweb Cloud
Команда Timeweb Cloud
Наши инженеры, технические писатели, редакторы и маркетологи
07 июля 2022 г.
7063
6 минут чтения
Средний рейтинг статьи: 5

New Documentation

PostgreSQL — система управления реляционными базами данных продвинутого уровня с открытым исходным кодом. Установить её на Debian 11 можно двумя способами: из репозитория операционной системы или из официального репозитория PostgreSQL.

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

База Данных Фото С Помощью Html, PHP И My SQL

Установка из репозитория Debian 11

На Debian установить PostgreSQL можно прямо из системного репозитория. 

Сначала обновите список пакетов. Запустите терминал и выполните:

sudo apt update && sudo apt upgrade

Пакет PostgreSQL находится в репозитории Debian, поэтому вы можете установить его с помощью утилиты apt. Для этого выполните:

sudo apt install postgresql postgresql-contrib

После завершения установки проверьте статус соответствующей службы с помощью команды:

sudo systemctl status postgresql

Если служба не запустилась автоматически, вы можете стартовать её вручную. Для этого выполните:

sudo systemctl start postgresql

Чтобы остановить работающую службу, выполните:

sudo systemctl stop postgresql

Прежде чем настраивать PostgreSQL на Debian, убедитесь в том, что служба запущена.

Установка из официального репозитория СУБД

Если вы хотите использовать только свежие версии Постгреса, рекомендуется использовать для установки и последующего обновления официальный репозиторий СУБД.

Прежде всего необходимо добавить ключ подписи GPG. Это требование безопасности, чтобы подтвердить подлинность репозитория PostgreSQL. Чтобы сделать это, запустите терминал и выполните:

curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /usr/share/keyrings/postgresql-keyring.gpg

Теперь вы готовы добавить репозиторий Postgres. Используйте следующую команду:

echo "deb [signed-by=/usr/share/keyrings/postgresql-keyring.gpg] http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list

После успешной интеграции библиотеки PostgreSQL вы готовы к установке СУБД. Но перед этим рекомендуется обновить репозиторий системы с помощью команды:

sudo apt update

После обновления выполните PostgreSQL install на Debian:

sudo apt install postgresql

Установка завершена. Теперь можно переходить к базовой настройке СУБД.

Базовая настройка

При установке СУБД автоматически создаётся пользователь postgres. Вы можете использовать эту учётную запись для первого подключения.

Переключитесь на пользователя postgres:

sudo su - postgres

Запустите утилиту psql — это оболочка для управления PostgreSQL:

psql

Теперь вы можете взаимодействовать с сервером PostgreSQL. Чтобы выйти из оболочки, введите:

\q

Вы можете использовать команду для доступа к командной строке Postgres без переключения пользователей:

sudo -u postgres psql

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

Создание роли и базы данных

Команда createuser позволяет создавать новые роли из командной строки. Только суперпользователи и роли с привилегиями CREATEROLE могут создавать новые роли.

В следующем примере создадим новую роль с именем timeweb и базу данных с именем timeweb_db, а затем предоставим новой роли привилегии для управления базой данных.

Сначала создайте новую роль:

sudo su - postgres -c "createuser timeweb"

Затем создайте новую БД:

sudo su - postgres -c "createdb timeweb_db"

Чтобы предоставить пользователю права доступа к базе данных, подключитесь к оболочке:

sudo -u postgres psql

Выполните следующий запрос, чтобы предоставить пользователю timeweb привилегии для управления базой данных timeweb_db:

GRANT ALL PRIVILEGES ON DATABASE timeweb_db TO timeweb;

Создавать новые роли и базы данных можно и сразу в оболочке СУБД. В таком случае синтаксис будет незначительно отличаться.

Чтобы создать новую роль с паролем, выполните:

create user cloud with password 'cloudtimeweb';

Чтобы создать новую БД, выполните:

create database cloud_db;

Затем нужно также предоставить все привилегии командой GRANT ALL PRIVILEGES ON DATABASE … TO ….

Настройка удалённого доступа

По умолчанию сервер Postgres слушает только локальный интерфейс 127.0.0.1. Это может быть неудобно. Допустим, у вас есть сервер на Timeweb Cloud с установленной СУБД. Гораздо комфортнее будет подключаться к нему удалённо. Для этого нужно настроить сервер на прослушивание других сетевых интерфейсов. 

Чтобы изменить конфигурацию, с помощью любого редактора откройте файл postgresql.conf. В этом примере используется редактор nano:

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

Найдите в файле конфигурации раздел CONNECTIONS AND AUTHENTICATION и строку #listen_addresses = 'localhost'. Измените значение строки на listen_addresses = '*'. Если вы хотите, чтобы сервер слушал не все сетевые интерфейсы, а только выбранный, укажите его вместо звёздочки.

Сохраните файл и перезапустите службу Postgres, чтобы изменения вступили в силу:

sudo service postgresql restart

Последний шаг — разрешение подключений из сети. Чтобы установить его, нужно отредактировать файл pg_hba.conf. Откройте его в редакторе:

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

Найдите строку IPv4 local connections. Укажите нужную сеть. Например, вот так:

TYPE

DATABASE    

USER

ADDRESS                 

METHOD

host

all

timeweb

192.168.1.134 

md5

Вы можете использовать другие методы аутентификации. Полный их список смотрите в документации СУБД.

Заключение

Установка PostgreSQL на Debian выполняется двумя способами. 

Первый вариант — использование системного репозитория. Его главный плюс — скорость. Не нужно ничего устанавливать дополнительно, достаточно выполнить одну команду. Минус в том, что в системном репозитории не всегда находится последняя версия ПО.

Второй вариант установки — использование официального репозитория PostgreSQL. Этот способ гарантирует, что вы будете пользоваться последней версией СУБД. Но действий придётся выполнить чуть больше — сначала добавить сам официальный репозиторий и лишь затем ставить Постгрес из него. 

При дальнейшей работе с базами PostgreSQL не забывайте создавать бэкапы данных. С этим поможет наша статья «Дампы в PostgreSQL: резервное копирование и восстановление».

Кстати, в официальном канале Timeweb Cloud собрали комьюнити из специалистов, которые говорят про IT-тренды, делятся полезными инструкциями и даже приглашают к себе работать.

Зарегистрируйтесь и начните пользоваться
сервисами Timeweb Cloud прямо сейчас

15 лет опыта
Сосредоточьтесь на своей работе: об остальном позаботимся мы
165 000 клиентов
Нам доверяют частные лица и компании, от небольших фирм до корпораций
Поддержка 24/7
100+ специалистов поддержки, готовых помочь в чате, тикете и по телефону