// Tutorial //

Установка PostgreSQL в Ubuntu 20.04 [Краткое руководство]

Published on May 13, 2020
Default avatar
By Mark Drake
Manager, Developer Education
Русский
Установка PostgreSQL в Ubuntu 20.04 [Краткое руководство]

Введение

PostgreSQL, или Postgres, — это система управления реляционными базами данных, которая представляет собой реализацию языка запросов SQL. Она соответствует стандартам и обладает множеством передовых функций, таких как надежность и параллельность операций без блокировки при чтении.

В этом обучающем руководстве мы рассмотрим, как установить Postgres на сервер Ubuntu 20.04.

Предварительные требования

Для выполнения данного руководства вам потребуется один сервер Ubuntu 20.04 с конфигурацией, выполненной согласно руководству по первоначальной настройке сервера Ubuntu 20.04. После выполнения всех предварительных действий ваш сервер должен иметь пользователя без прав root с разрешениями sudo и базовый брандмауэр.

Шаг 1 — Установка PostgreSQL

Для установки PostgreSQL в первую очередь обновите локальный индекс пакетов вашего сервера:

  1. sudo apt update

После этого установите пакет Postgres вместе с пакетом -contrib, который содержит дополнительные утилиты и функциональные возможности:

  1. sudo apt install postgresql postgresql-contrib

Шаг 2 — Использование ролей и баз данных в PostgreSQL

По умолчанию Postgres использует концепцию «ролей» для выполнения аутентификации и авторизации. В некоторых аспектах они аналогичны обычным пользователям и группам в Unix.

После установки Postgres настроена на использование аутентификации ident, что значит, что выполняется привязка ролей Postgres с соответствующей системной учетной записью Unix/Linux. Если роль существует внутри Postgres, пользователь Unix/Linux с тем же именем может выполнить вход в качестве этой роли.

В ходе установки была создана учетную запись пользователя postgres, которая связана с используемой по умолчанию ролью postgres. Существует несколько способов использования этой учетной записи для доступа к Postgres. Один из способов — переход к учетной записи postgres на вашем сервере с помощью следующей команды:

  1. sudo -i -u postgres

Затем вы можете получить доступ к командной строке Postgres с помощью команды:

  1. psql

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

Для выхода из командной строки PostgreSQL выполните следующую команду:

  1. \q

В результате вы вернетесь в командную строку postgres в Linux.

Также вы можете запустить необходимую вам команду с учетной записью postgres напрямую с помощью sudo:

  1. sudo -u postgres psql

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

Вы снова сможете выйти из интерактивного сеанса Postgres с помощью следующей команды:

  1. \q

Шаг 3 — Создание новой роли

Если вы выполнили вход в учетную запись postgres, то можете создать новую роль с помощью следующей команды:

  1. createuser --interactive

Если же вы предпочитаете использовать sudo для каждой команды без переключения с обычной учетной записи, введите следующую команду:

  1. sudo -u postgres createuser --interactive

В любом случае скрипт будет предлагать варианты на выбор и, исходя из ваших ответов, выполнять нужные команды Postgres для создания пользователя в соответствии с вашими спецификациями.

Output
Enter name of role to add: sammy Shall the new role be a superuser? (y/n) y

Шаг 4 — Создание новой базы данных

Еще одно предположение, которое система аутентификации Postgres использует по умолчанию, состоит в том, что для любой роли, используемой для входа, существует база данных с тем же именем, к которой роль может получить доступ.

Это означает, что если созданный вами в последнем разделе пользователь будет иметь имя sammy, эта роль попытается подключиться к базе данных, которая также называется «sammy» по умолчанию. Вы можете создать соответствующую базу данных с помощью команды createdb.

Если вы используете учетную запись postgres, необходимо ввести следующее:

  1. createdb sammy

Если же вы предпочитаете использовать sudo для каждой команды без переключения с обычной учетной записи, введите следующую команду:

  1. sudo -u postgres createdb sammy

Шаг 5 — Открытие командной строки Postgres с новой ролью

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

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

  1. sudo adduser sammy

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

  1. sudo -i -u sammy
  2. psql

Либо же вы можете сделать следующее:

  1. sudo -u sammy psql

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

Если вы хотите, чтобы ваш пользователь подключился к другой базе данных, то вы можете сделать это с помощью следующей команды:

  1. psql -d postgres

После входа вы можете проверить данные о текущем подключении:

  1. \conninfo
Output
You are connected to database "sammy" as user "sammy" via socket in "/var/run/postgresql" at port "5432".

Заключение

Вы настроили PostgreSQL на сервере Ubuntu 20.04. Если вы хотите узнать больше о системе Postgres и способах ее использования, мы рекомендуем вам изучить следующие руководства:

If you’ve enjoyed this tutorial and our broader community, consider checking out our DigitalOcean products which can also help you achieve your development goals.

Learn more here


About the authors
Default avatar
Manager, Developer Education

Technical Writer @ DigitalOcean

Still looking for an answer?

Was this helpful?
2 Comments

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

How to open it for pgadmin connection?

What if I say no for superuser:

Enter name of role to add: sammy Shall the new role be a superuser? (y/n) n