В статье мы расскажем, что такое PostgreSQL и как ее установить на ОС Debian.
Что такое PostgreSQL
PostgreSQL — это объектно-реляционная система управления базами данных. Она относится к категории свободного программного обеспечения и распространяется бесплатно.
Работа с Постгрес строится на языке SQL: на нем вы можете создавать запросы для работы с данными в таблицах и конкретных строках.
Преимущества PostgreSQL
Система управления базами данных PostgreSQL имеет ряд преимуществ. Среди них:
- Кроссплатформенность. Постгрес поддерживает большинство популярных операционных систем: Linux, Windows, macOS и др.
- Поддержка разных форматов данных: например, сетевых адресов, текстовых данных JSON, геометрических данных и др. Помимо существующих форматов, доступно создание пользовательских форматов — их структуру вы можете настроить самостоятельно.
- Возможность работать с большими объемами информации. Максимально допустимый размер таблицы в PostgreSQL составляет 32 ТБ, максимальный объем строки — 1,6 ТБ, а размер строки не должен превышать 1 ГБ. При этом объем базы данных не ограничен.
Соответствие требованиям ACID. Как расшифровывается эта аббревиатура:
- Атомарность (англ. Atomicity) — возможность выполнять операции (транзакции) с данными.
- Согласованность (англ. Consistency) — выполнение операции только в случае, если результат не нарушает структуру данных в базе.
- Изолированность (англ. Isolation) — параллельные операции никак не влияют друг на друга.
- Устойчивость (англ. Durability) — выполненная транзакция не будет отменена из-за технических неполадок.
- Поддержка вложенных транзакций — тех, которые выполняются внутри других транзакций.
- Наличие оконных функций. Оконные функции позволяют выбрать отдельные записи из таблицы и работать с ними в отдельном столбце.
- Возможность создавать триггеры — функционал, который запускается при выполнении определенных условий.
- Наличие собственного «диалекта» SQL. Наибольшая часть запросов выполняется на классическом SQL, однако некоторые операции можно выполнить при помощи особых запросов PostgreSQL. Как правило они короче стандартных и этим упрощают работу с базой.
- Поддержка синхронной репликации — сохранения изменений во всех копиях базы данных одновременно.
- Перенос информации из другой СУБД без потерь. В PostgreSQL можно перенести до 10 ТБ данных. Полный перенос может занять несколько дней, но зато все данные сохранятся в полном объеме.
Как установить PostgreSQL
Самый простой способ — это установить СУБД из репозитория Debian 11 или 12 напрямую.
Чтобы установить Постгрес из репозитория:
- 1 Подключитесь к серверу по SSH.
-
2
Обновите пакеты. Для этого поочередно выполните команды:
sudo apt update sudo apt upgrade
-
3
Установите PostgreSQL:
sudo apt install postgresql postgresql-contrib
-
4
Проверьте состояние службы PostgreSQL:
sudo systemctl status postgresql
Если установка PostgreSQL прошла без ошибок, вывод будет иметь следующий вид:
● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; preset: e> Active: active (exited) since Sun 2023-01-01 00:00:00 MSK; 1min 23s ago Main PID: 9190 (code=exited, status=0/SUCCESS) CPU: 1ms Jan 01 00:00:10 cv1234567.novalocal systemd[1]: Starting postgresql.service - P> Jan 01 00:00:20 cv1234567.novalocal systemd[1]: Finished postgresql.service - P>
Готово, вы установили PostgreSQL.
Как настроить PostgreSQL
Настройка PostgreSQL не займет много времени. Она состоит из нескольких этапов, каждый из которых мы опишем ниже.
Как подключиться к PostgreSQL
При установке PostgreSQL автоматически создается пользователь с именем postgres и правами суперпользователя.
Чтобы подключиться к консоли PostgreSQL:
- 1 Подключитесь к серверу по SSH.
-
2
Откройте консоль от имени пользователя postgres:
sudo -u postgres psql
Если вам нужно закрыть консоль, используйте команду:
\q
Готово, теперь вы можете подключиться к консоли.
Как узнать версию PostgreSQL
- 1 Подключитесь к серверу по SSH.
-
2
Откройте консоль от имени пользователя postgres:
sudo -u postgres psql
-
3
Введите запрос:
SELECT version();
Вывод будет иметь следующий вид:
PostgreSQL 15.5 (Debian 15.5-0+deb12u1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit (1 row)
-
4
По необходимости закройте консоль:
\q
Готово, вы узнали версию PostgreSQL.
Как создать базу данных и пользователя для нее
- 1 Подключитесь к серверу по SSH.
-
2
Создайте пользователя базы данных:
sudo su - postgres -c "createuser username"
Вместо username укажите имя пользователя.
-
3
Создайте базу данных:
sudo su - postgres -c "createdb db_name"
Вместо db_name укажите название базы данных.
-
4
Откройте консоль PostgreSQL:
sudo -u postgres psql
-
5
Назначьте новому пользователю права для управления базой:
GRANT ALL PRIVILEGES ON DATABASE db_name TO username;
Где:
- db_name — имя базы данных,
- username — имя пользователя.
Готово, вы создали базу данных и пользователя для нее.
Как настроить удаленный доступ к базе данных
- 1 Подключитесь к серверу по SSH.
-
2
Откройте конфигурационный файл PostgreSQL:
sudo nano /etc/postgresql/15/main/postgresql.conf
Вместо 15 укажите вашу версию PostgreSQL.
-
3
Замените строку #listen_addresses = 'localhost' на следующее значение:
listen_addresses = '*'
Если вы не хотите, чтобы PostgreSQL прослушивал все сетевые интерфейсы, замените знак * на конкретный адрес. Например:
listen_addresses = '123.123.123.123'
Вместо 123.123.123.123 укажите адрес нужного сетевого интерфейса.
После этого сохраните изменения при помощи сочетания клавиш Ctrl + O. Затем закройте файл комбинацией Ctrl + X.
-
4
Перезапустите службу PostgreSQL — это нужно, чтобы изменения в конфигурационном файле вступили в силу:
sudo service postgresql restart
-
5
Откройте файл аутентификации:
sudo nano /etc/postgresql/15/main/pg_hba.conf
Вместо 15 укажите вашу версию PostgreSQL.
-
6
В строке IPv4 local connections укажите нужную сеть в следующем формате:
hostallusername123.123.123.123md5Где:
- host — тип подключения;
- all — список баз данных для подключения. Если нужно разрешить подключение ко всем базам на сервере, используется значение all;
- username — имя пользователя, у которого есть право подключаться;
- 123.123.123.123 — адрес сети;
- md5 — метод шифрования данных.
После этого сохраните изменения при помощи сочетания клавиш Ctrl + O. Затем закройте файл комбинацией Ctrl + X.
-
7
Чтобы изменения вступили в силу, перезапустите службу PostgreSQL:
sudo service postgresql restart
Если настройка удаленного доступа к PostgreSQL прошла корректно, команда не будет иметь вывода.
Готово, вы настроили удаленный доступ к базе данных.
Помогла ли вам статья?
Спасибо за оценку. Рады помочь 😊