Как установить PostgreSQL на Linux: пошаговая инструкция

Как установить PostgreSQL на Linux: пошаговая инструкция

Как установить 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:

Стандартная панель управления pgAdmin

Нажмите кнопку «Добавить новый сервер» и введите информацию о нём.

Добавить новый сервер

После сохранения учётных данных вы автоматически подключитесь к удалённому серверу. Список с доступными БД расположен в левой области окна.

Список с доступными БД

Читайте в блоге:

Что будем искать? Например,VPS-сервер

Мы в социальных сетях