tech-tips/Программное обеспечение/СУБД/Postgresql/Установка PostgreSQL в Ubuntu 20.04.md

135 lines
9.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
source: [https://www.digitalocean.com/community/tutorials/how-to-install-PostgreSQL-on-ubuntu-20-04-quickstart-ru]()
tags:
- ubuntu
---
### Введение
[PostgreSQL](https://www.PostgreSQL.org/), или #PostgreSQL, — это система управления реляционными базами данных, которая представляет собой реализацию языка запросов [SQL](https://en.wikipedia.org/wiki/SQL). Она соответствует стандартам и обладает множеством передовых функций, таких как надежность и параллельность операций без блокировки при чтении.
В этом обучающем руководстве мы рассмотрим, как установить PostgreSQL на сервер Ubuntu 20.04.
## Предварительные требования
Для выполнения данного руководства вам потребуется один сервер Ubuntu 20.04 с конфигурацией, выполненной согласно [руководству по первоначальной настройке сервера Ubuntu 20.04](https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-20-04). После выполнения всех предварительных действий ваш сервер должен иметь пользователя без прав **root** с разрешениями sudo и базовый брандмауэр.
## Шаг 1 — Установка PostgreSQL
Для установки PostgreSQL в первую очередь обновите локальный индекс пакетов вашего сервера:
```
sudo apt update
```
После этого установите пакет PostgreSQL вместе с пакетом `-contrib`, который содержит дополнительные утилиты и функциональные возможности:
## Шаг 2 — Использование ролей и баз данных в PostgreSQL
По умолчанию PostgreSQL использует концепцию «ролей» для выполнения аутентификации и авторизации. В некоторых аспектах они аналогичны обычным пользователям и группам в Unix.
После установки PostgreSQL настроена на использование аутентификации _ident_, что значит, что выполняется привязка ролей PostgreSQL с соответствующей системной учетной записью Unix/Linux. Если роль существует внутри PostgreSQL, пользователь Unix/Linux с тем же именем может выполнить вход в качестве этой роли.
В ходе установки была создана учетную запись пользователя **PostgreSQL**, которая связана с используемой по умолчанию ролью PostgreSQL. Существует несколько способов использования этой учетной записи для доступа к PostgreSQL. Один из способов — переход к учетной записи **PostgreSQL** на вашем сервере с помощью следующей команды:
```
sudo -i -u PostgreSQL
```
Затем вы можете получить доступ к командной строке PostgreSQL с помощью команды:
```
psql
```
В результате вы можете получить доступ к командной строке PostgreSQL, а уже отсюда свободно взаимодействовать с системой управления базами данных.
Для выхода из командной строки PostgreSQL выполните следующую команду:
В результате вы вернетесь в командную строку `PostgreSQL` в Linux.
Также вы можете запустить необходимую вам команду с учетной записью **PostgreSQL** напрямую с помощью `sudo`:
```
sudo -u PostgreSQL psql
```
Это позволит выполнить вход в PostgreSQL без необходимости использования промежуточной командной строки `bash`.
Вы снова сможете выйти из интерактивного сеанса PostgreSQL с помощью следующей команды:
## Шаг 3 — Создание новой роли
Если вы выполнили вход в учетную запись **PostgreSQL**, то можете создать новую роль с помощью следующей команды:
```
createuser --interactive
```
Если же вы предпочитаете использовать `sudo` для каждой команды без переключения с обычной учетной записи, введите следующую команду:
```
sudo -u PostgreSQL createuser --interactive
```
В любом случае скрипт будет предлагать варианты на выбор и, исходя из ваших ответов, выполнять нужные команды PostgreSQL для создания пользователя в соответствии с вашими спецификациями.
```
Enter name of role to add: sammy
Shall the new role be a superuser? (y/n) y
```
## Шаг 4 — Создание новой базы данных
Еще одно предположение, которое система аутентификации PostgreSQL использует по умолчанию, состоит в том, что для любой роли, используемой для входа, существует база данных с тем же именем, к которой роль может получить доступ.
Это означает, что если созданный вами в последнем разделе пользователь будет иметь имя **sammy**, эта роль попытается подключиться к базе данных, которая также называется «sammy» по умолчанию. Вы можете создать соответствующую базу данных с помощью команды `createdb`.
Если вы используете учетную запись **PostgreSQL**, необходимо ввести следующее:
```
createdb sammy
```
Если же вы предпочитаете использовать `sudo` для каждой команды без переключения с обычной учетной записи, введите следующую команду:
```
sudo -u PostgreSQL createdb sammy
```
## Шаг 5 — Открытие командной строки PostgreSQL с новой ролью
Чтобы выполнить аутентификацию с помощью `ident`, вам потребуется пользователь Linux с тем же именем, что и имя роли и базы данных в PostgreSQL.
Если у вас нет соответствующего пользователя Linux, то вы можете создать его с помощью команды `adduser`. Вы должны воспользоваться учетной записи без прав **root** с привилегиями `sudo` (т.е. не выполняя вход в качестве пользователя **PostgreSQL**):
Когда новая учетная запись будет доступна, вы можете переключиться и подключиться к базе данных следующим образом:
Либо же вы можете сделать следующее:
```
sudo -u sammy psql
```
Эта команда позволит выполнить вход автоматически, полагая, что все компоненты были настроены должным образом.
Если вы хотите, чтобы ваш пользователь подключился к другой базе данных, то вы можете сделать это с помощью следующей команды:
```
psql -d PostgreSQL
```
После входа вы можете проверить данные о текущем подключении:
```
\conninfo
```
```
You are connected to database "sammy" as user "sammy" via socket in "/var/run/PostgreSQL" at port "5432".
```
## Заключение
Вы настроили PostgreSQL на сервере Ubuntu 20.04. Если вы хотите узнать больше о системе PostgreSQL и способах ее использования, мы рекомендуем вам изучить следующие руководства: