Tutorial

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

Published on May 13, 2020

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

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

About the authors
Default avatar

Manager, Developer Education

Technical Writer @ DigitalOcean

Still looking for an answer?

Ask a questionSearch for more help

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

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Become a contributor for community

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

DigitalOcean Documentation

Full documentation for every DigitalOcean product.

Resources for startups and SMBs

The Wave has everything you need to know about building a business, from raising funding to marketing your product.

Get our newsletter

Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

New accounts only. By submitting your email you agree to our Privacy Policy

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.