Manager, Developer Education
PostgreSQL, или Postgres, — это система управления реляционными базами данных, которая представляет собой реализацию языка запросов SQL. Она соответствует стандартам и обладает множеством передовых функций, таких как надежность и параллельность операций без блокировки при чтении.
В этом обучающем руководстве мы рассмотрим, как установить Postgres на сервер Ubuntu 20.04.
Для выполнения данного руководства вам потребуется один сервер Ubuntu 20.04 с конфигурацией, выполненной согласно руководству по первоначальной настройке сервера Ubuntu 20.04. После выполнения всех предварительных действий ваш сервер должен иметь пользователя без прав root с разрешениями sudo и базовый брандмауэр.
Для установки PostgreSQL в первую очередь обновите локальный индекс пакетов вашего сервера:
- sudo apt update
После этого установите пакет Postgres вместе с пакетом -contrib
, который содержит дополнительные утилиты и функциональные возможности:
- sudo apt install postgresql postgresql-contrib
По умолчанию Postgres использует концепцию «ролей» для выполнения аутентификации и авторизации. В некоторых аспектах они аналогичны обычным пользователям и группам в Unix.
После установки Postgres настроена на использование аутентификации ident, что значит, что выполняется привязка ролей Postgres с соответствующей системной учетной записью Unix/Linux. Если роль существует внутри Postgres, пользователь Unix/Linux с тем же именем может выполнить вход в качестве этой роли.
В ходе установки была создана учетную запись пользователя postgres, которая связана с используемой по умолчанию ролью postgres. Существует несколько способов использования этой учетной записи для доступа к Postgres. Один из способов — переход к учетной записи postgres на вашем сервере с помощью следующей команды:
- sudo -i -u postgres
Затем вы можете получить доступ к командной строке Postgres с помощью команды:
- psql
В результате вы можете получить доступ к командной строке PostgreSQL, а уже отсюда свободно взаимодействовать с системой управления базами данных.
Для выхода из командной строки PostgreSQL выполните следующую команду:
- \q
В результате вы вернетесь в командную строку postgres
в Linux.
Также вы можете запустить необходимую вам команду с учетной записью postgres напрямую с помощью sudo
:
- sudo -u postgres psql
Это позволит выполнить вход в Postgres без необходимости использования промежуточной командной строки bash
.
Вы снова сможете выйти из интерактивного сеанса Postgres с помощью следующей команды:
- \q
Если вы выполнили вход в учетную запись postgres, то можете создать новую роль с помощью следующей команды:
- createuser --interactive
Если же вы предпочитаете использовать sudo
для каждой команды без переключения с обычной учетной записи, введите следующую команду:
- sudo -u postgres createuser --interactive
В любом случае скрипт будет предлагать варианты на выбор и, исходя из ваших ответов, выполнять нужные команды Postgres для создания пользователя в соответствии с вашими спецификациями.
OutputEnter name of role to add: sammy
Shall the new role be a superuser? (y/n) y
Еще одно предположение, которое система аутентификации Postgres использует по умолчанию, состоит в том, что для любой роли, используемой для входа, существует база данных с тем же именем, к которой роль может получить доступ.
Это означает, что если созданный вами в последнем разделе пользователь будет иметь имя sammy, эта роль попытается подключиться к базе данных, которая также называется «sammy» по умолчанию. Вы можете создать соответствующую базу данных с помощью команды createdb
.
Если вы используете учетную запись postgres, необходимо ввести следующее:
- createdb sammy
Если же вы предпочитаете использовать sudo
для каждой команды без переключения с обычной учетной записи, введите следующую команду:
- sudo -u postgres createdb sammy
Чтобы выполнить аутентификацию с помощью ident
, вам потребуется пользователь Linux с тем же именем, что и имя роли и базы данных в Postgres.
Если у вас нет соответствующего пользователя Linux, то вы можете создать его с помощью команды adduser
. Вы должны воспользоваться учетной записи без прав root с привилегиями sudo
(т.е. не выполняя вход в качестве пользователя postgres):
- sudo adduser sammy
Когда новая учетная запись будет доступна, вы можете переключиться и подключиться к базе данных следующим образом:
- sudo -i -u sammy
- psql
Либо же вы можете сделать следующее:
- sudo -u sammy psql
Эта команда позволит выполнить вход автоматически, полагая, что все компоненты были настроены должным образом.
Если вы хотите, чтобы ваш пользователь подключился к другой базе данных, то вы можете сделать это с помощью следующей команды:
- psql -d postgres
После входа вы можете проверить данные о текущем подключении:
- \conninfo
OutputYou 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.
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