135 lines
9.1 KiB
Markdown
135 lines
9.1 KiB
Markdown
---
|
||
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 и способах ее использования, мы рекомендуем вам изучить следующие руководства:
|