PostgreSQL — система управления реляционными базами данных продвинутого уровня с открытым исходным кодом. Установить её на Debian 11 можно двумя способами: из репозитория операционной системы или из официального репозитория PostgreSQL.
В этой статье вы изучите оба метода, а также научитесь выполнять стандартные операции вроде создания ролей и баз данных.
На 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, убедитесь в том, что служба запущена.
dbaas
Если вы хотите использовать только свежие версии Постгреса, рекомендуется использовать для установки и последующего обновления официальный репозиторий СУБД.
Прежде всего необходимо добавить ключ подписи 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 в один клик
Установка PostgreSQL на Debian выполняется двумя способами.
Первый вариант — использование системного репозитория. Его главный плюс — скорость. Не нужно ничего устанавливать дополнительно, достаточно выполнить одну команду. Минус в том, что в системном репозитории не всегда находится последняя версия ПО.
Второй вариант установки — использование официального репозитория PostgreSQL. Этот способ гарантирует, что вы будете пользоваться последней версией СУБД. Но действий придётся выполнить чуть больше — сначала добавить сам официальный репозиторий и лишь затем ставить Постгрес из него.
При дальнейшей работе с базами PostgreSQL не забывайте создавать бэкапы данных. С этим поможет наша статья «Дампы в PostgreSQL: резервное копирование и восстановление».
Кстати, в официальном канале Timeweb Cloud собрали комьюнити из специалистов, которые говорят про IT-тренды, делятся полезными инструкциями и даже приглашают к себе работать.