Как установить PostgreSQL на Linux: подробная инструкция на примере Ubuntu 20.04. Разбираем по шагам процесс установки и начальной настройки СУБД PostgreSQL, а также рассказываем о трёх способах удалённого доступа к серверу PostgreSQL.
СУБД PostgreSQL — это мощная open-source система управления объектно-реляционными базами данных, которая известна своей надёжностью, функциональностью и производительностью. Рассказываем, как установить СУБД PostgreSQL на сервере с Linux на примере Ubuntu 20.04, включая первоначальную настройку.
Инструкция по установке PostgreSQL на Linux включает в себя 7 шагов, выполните их, чтобы установить, настроить и подключиться к PostgreSQL удалённо.
Шаг 1. Добавьте официальный репозиторий
Скачать PostgreSQL можно из двух источников: репозитория вашей операционной системы и из официального репозитория разработчиков этой СУБД. Второй вариант предпочтительнее, поскольку репозиторий разработчиков обновляется чаще, чем источники ОС Linux.
Сначала следует установить необходимые пакеты программного обеспечения, которые будут использоваться для загрузки файлов и установки корневых сертификатов ПО для безопасного SSL-соединения (утилиты wget и ca-certificates):
sudo apt install wget ca-certificates
Затем получите сертификат, добавьте его в утилиту управления apt-key и создайте новый файл конфигурации, который будет содержать адрес официального репозитория:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc
sudo apt-key add -
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'
Шаг 2. Установите PostgreSQL
Обновите данные о доступных программных пакетах. Сделайте это непосредственно перед установкой.
sudo apt update
Следующая команда установит новейшую версию СУБД вместе с модулем postgresql-contrib (набор стандартных расширений и дополнений):
apt install postgresql postgresql-contrib
Шаг 3. Проверка статуса
По завершении установки проверьте, активен ли сервис:
service postgresql status
Вывод свидетельствует об успешной установке:
Шаг 4. Запустите собственный клиент для работы в терминале — psql
Во время установки PostgreSQL автоматически была создана первая база данных «postgres» и одноимённая роль с root-правами. Из-под роли «postgres» осуществляется первый вход в систему.
Для администрирования баз данных СУБД использует собственный клиент «psql». Запустите его как «postgres»:
sudo -u postgres psql
После этого вы войдёте в базу данных по умолчанию. Убедитесь, что первый вход прошёл успешно, выполнив в терминале \conninfo:
Задайте пароль для роли «postgres»:
\password postgres
Шаг 5. Создание и заполнение пользовательской базы данных
Создайте пользовательскую базу данных. Действие доступно только ролям с максимальными привилегиями. При вводе команды замените «test_erp» на нужное название.
CREATE DATABASE test_erp;
Чтобы подключиться к новой БД после создания, выполните:
\c test_erp
Теперь вы можете начать создавать таблицы с данными. Для примера создадим таблицу «clients» с основным ключом и тремя клиентскими атрибутами, для каждого атрибута укажем формат данных:
CREATE TABLE clients (id SERIAL PRIMARY KEY, first_name VARCHAR, last_name VARCHAR, role VARCHAR);
Проверим, успешно ли создана тестовая таблица, введя \dt.
Чтобы заполнить первую строку, выполните:
INSERT INTO clients (first_name, last_name, role) VALUES («Имя», «Фамилия», «Роль»);
Для проверки запросите таблицу, psql выведет все её строки.
SELECT * FROM clients;
Шаг 6. Настройка сервера PostgreSQL
Все предыдущие шаги были выполнены в локальной базе данных, но в конечном итоге для работы придётся подключаться к удалённому серверу. Сразу после установки на сервере PostgreSQL разрешён только локальный доступ. Измените эту настройку в конфигурационном файле, чтобы разрешить удалённое администрирование. Для этого выйдите из активного сеанса psql, введя команду «exit», после чего откройте postgresql.conf (в примере мы пользуемся приложением vim):
vim /etc/postgresql/14/main/postgresql.conf
Раскомментируйте и измените строку «listen_addresses», чтобы сервер начал прослушивать все возможные IP-адреса:
listen_addresses = '*'
После чего отредактируйте файл с политиками доступа. Откройте его в vim:
vim /etc/postgresql/14/main/pg_hba.conf
Добавьте новую строку в конец файла:
host all all 0.0.0.0/0 md5
Строка содержит следующие данные:
- тип подключения,
- название БД,
- роль,
- IP-адрес,
- криптографический протокол.
Вписав этот шаблон, мы разрешаем TCP/IP-подключения («host») ко всем БД («all») для всех ролей («all») с любых IPv4-адресов, при этом будет применяться алгоритм хеширования MD5.
Для применения изменений потребуется перезапуск:
systemctl restart postgresql
Проверьте, прослушивается ли порт, зарезервированный для PostgreSQL:
ss -nlt | grep 5432
Если всё в порядке, вы увидите следующий вывод:
Шаг 7. Подключитесь к PostgreSQL с удалённого хоста
Сервер PostgreSQL теперь запущен и прослушивает внешние запросы. Рассмотрим три способа подключения с удалённого хоста.
7.1. Подключение через psql
Инструмент командной строки psql также позволяет подключаться к удалённой базе данных. Если он ещё не стоит на удалённой машине, выполните шаги 1–3 для полной установки PostgreSQL или установите только клиент psql следующей командой:
sudo apt install postgresql-client
Теперь вы можете подключиться к базе данных удалённо, используя шаблон:
psql -h [ip address] -p [port] -d [database] -U [username]
Проверьте данные подключения с помощью «\conninfo». Вывод должен быть таким же, как при локальном подключении.
7.2. Подключение через редактор кода
Чтобы подключиться из редактора кода необходим драйвер для выбранного языка программирования. Например, для Python стандартный драйвер — psycopg2. Установим эту библиотеку с помощью pip packet manager.
pip install psycopg2-binary
Импортируем psycopg2 в свой код:
import psycopg2
Для подключения нужно знать название БД, хост, порт, роль и пароль:
conn = psycopg2.connect(host=[хост], port=’5432’, dbname=[название], user=[юзер], password=[пароль])
7.3. Подключение через GUI-приложение
pgAdmin — наиболее популярное приложение с графическим интерфейсом для PostgreSQL; поэтому мы покажем, как использовать GUI-приложения на его примере.
Установите pgAdmin по инструкции разработчиков.
После запуска вы попадёте в стандартную панель управления pgAdmin:
Нажмите кнопку «Добавить новый сервер» и введите информацию о нём.
После сохранения учётных данных вы автоматически подключитесь к удалённому серверу. Список с доступными БД расположен в левой области окна.
Читайте в блоге: