Быстрая установка PostgreSQL в Ubuntu 20.04

PostgreSQL (или просто Postgres) – это реляционная система управления базами данных (СУБД), основанная на языке запросов SQL. Она отвечает всем стандартам, подходит для поддержки приложений любого масштаба и имеет множество дополнительных функций (надёжные транзакции, параллелизм без блокировки прав на чтение и т.д.).

Данный мануал поможет установить PostgreSQL на сервер Ubuntu 20.04.

Примечание: Расширенную версию мануала вы найдете здесь.

Требования

Для работы вам нужен сервер Ubuntu 20.04 с пользователем sudo и брандмауэром, настроенный по этому мануалу. Чтобы начать работу, войдите в сессию пользователя с доступом к sudo.

1: Установка PostgreSQL

Обновите индекс локальных пакетов, если вы еще не сделали этого в текущей сессии:

sudo apt update

Затем установите пакет Postgres и -contrib, который добавляет некоторые нестандартные функции.

sudo apt install postgresql postgresql-contrib

2: Роли и базы данных PostgreSQL

По умолчанию PostgreSQL использует так называемые роли. Они чем-то похожи на учётные записи пользователей или группы в Unix-подобных системах. Только система PostgreSQL не различает пользователей и группы, она объединяет их под понятием «роли».

Во время установки PostgreSQL использует модель аутентификации ident, которая связывает роли PostgreSQL со стандартными пользователями Unix/Linux. Открыть существующую роль можно при помощи связанной с ней учётной записи Linux.

При установке СУБД система создала Linux-пользователя postgres, который связан со стандартной ролью Postgres. Вы можете использовать этот аккаунт, чтобы подключиться к PostgreSQL.

Существует несколько способов получить доступ к PostgreSQL при помощи этого аккаунта. Вот один из них. Перейдите в сессию этого пользователя:

sudo -i -u postgres

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

psql

Команда выполнит вход и откроет доступ к управлению СУБД.

Чтобы закрыть командную строку PostgreSQL, наберите:

\q

Это вернет вас в командную строку Linux.

Также можно получить доступ к командной строке PostgreSQL, не изменяя при этом сессии пользователя. Для этого нужен доступ к команде sudo:

sudo -u postgres psql

Эта команда выполнит автоматический вход в PostgreSQL без промежуточной оболочки bash.

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

\q

3: Создание роли

В сессии postgres создать нового пользователя можно с помощью команды:

createuser --interactive

В сессии другого пользователя можно использовать команду sudo, чтобы не переходить в сессию postgres:

sudo -u postgres createuser --interactive

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

Enter name of role to add: 8host

Shall the new role be a superuser? (y/n) y

4: Создание базы данных

По умолчанию роль Postgres запрашивает одноименную базу данных. Давайте попробуем создать такую БД для нового пользователя.

Только что вы создали нового пользователя (в мануале он условно называется 8host). Для создания БД используется команда createdb.

В сессии пользователя postgres создать новую БД можно с помощью команды:

createdb 8host

В сессии другого пользователя можно использовать команду sudo, чтобы не переходить в сессию postgres:

sudo -u postgres createdb 8host

5: Аутентификация новой роли PostgreSQL

Чтобы выполнить ident аутентификацию PostgreSQL, нужно иметь пользователя системы Linux, чье имя совпадает с именем роли и БД.

Если у вас нет такого пользователя, создайте его в Linux с помощью команды adduser (для этого необходимы права sudo). Вы должны сделать это в сессии вашего пользователя sudo.

sudo adduser 8host

После этого можно перейти в сессию нового пользователя и подключиться к БД:

sudo -i -u 8host
psql

Также вы можете подключиться к БД напрямую:

sudo -u 8host psql

Если все предыдущие настройки были выполнены правильно, команда автоматически подключится к БД.

Чтобы подключиться к другой БД, нужно указать её имя:

psql -d postgres

Чтобы получить информацию о текущем подключении, введите команду:

\conninfo

You are connected to database «8host» as user «8host» via socket in «/var/run/postgresql» at port «5432».

Это может пригодиться при подключении к нестандартным базам данных или пользователям.

Заключение

Теперь на сервере Ubuntu 20.04 у вас есть установка PostgreSQL, готовая к использованию. Также вы выучили основные команды для работы с сервером.

Читайте также:

Tags: , ,

Добавить комментарий