Как установить postgresql 12 на ubuntu

Обновлено: 04.07.2024

Реляционные системы управления базами данных (РСУБД) - это ключевой компонент многих веб-сайтов и приложений. Они обеспечивают структурированный способ хранения данных и организацию доступа к информации. PostgreSQL- это объектно-реляционная система управления базами данных, которая все больше и больше вытесняет MySQL и производственных серверов.

Её преимущество в множестве дополнительных функций и улучшений, таких как надежная передача данных и параллелизация без блокировок чтения. Вы можете использовать эту СУБД с различными языками программирования, а её синтаксис запросов PL/pgSQL очень похож на MySQL от Oracle. В этой статье мы рассмотрим, как выполняется установка PostgreSQL в Ubuntu 20.04 из официальных репозиториев и репозитория PostgreSQL (PPA) а так же, как выполнить первоначальную настройку и подготовку к работе c данной СУБД.

Установка PostgreSQL в Ubuntu 20.04

1. Установка из официальных репозиториев

Это очень популярная СУБД, потому программа присутствует в официальных репозиториях. Для установки выполните следующие команды. Сначала обновите списки пакетов:

sudo apt update

Установите СУБД PostgreSQL:

sudo apt -y install postgresql

Bxu6MavjgSm6AAAAAElFTkSuQmCC

2. Установка из официальных репозиториев PostgreSQL

Если есть необходимость в получение самой последней версии, то необходимо добавить в систему официальный PPA от разработчиков PostgreSQL. Для этого выполните следующие команды:

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

wWqXkIy35biQwAAAABJRU5ErkJggg==

Далее обновите списки пакетов, чтобы получить самую новую доступную версию:

sudo apt update

Установка PostgreSQL из PPA или официальных репозиториев выглядит одинаково:

sudo apt -y install postgresql

vQQAAAABJRU5ErkJggg==

Настройка PostgreSQL в Ubuntu 20.04

После установки СУБД откройте терминал и переключитесь на пользователя postgres с помощью команды:

sudo -i -u postgres

2s8PoiwrxRHO3tOHf8f3BQ31KaKItuAAAAAElFTkSuQmCC

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

Это очень похоже на учетные записи Unix, но программа не различает пользователей и групп, есть только роли. Сразу после установки PostgreSQL пытается связать свои роли с системными учетными записями, если для имени системной учетной записи существует роль, то пользователь может войти в консоль управления и выполнять позволенные ему действия. Таким образом, после переключения на пользователя postgres вы можете войти в консоль управления:

qB7YIAAAAASUVORK5CYII=

И посмотреть информацию о соединении:

AZl3R9oWNdWtmo0mbESvqGD9PFvtk1KNMMUU4yH8P7pEDPO2B5uMAAAAAElFTkSuQmCC

Чтобы выйти наберите:

Теперь рассмотрим, как создать другие роли и базы данных.

Создание роли postgresql

Вы уже можете полноценно работать с базой данных с помощью учетной записи postgres, но давайте создадим дополнительную роль. Учетная запись postgres является администратором, поэтому имеет доступ к функциям управления. Для создания пользователя выполните команду:

AAAAAElFTkSuQmCC

Скрипт задаст лишь два вопроса, имя новой роли и нужно ли делать ее суперпользователем.

Создание базы данных

Точно также как имена ролей сопоставляются с системными пользователями, имя базы данных будет подбираться по имени пользователя. Например, если мы создали пользователя alex, то по умолчанию система попытается получить доступ к базе данных alex. Мы можем ее очень просто создать:

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

8HKGPz6sRI9TQAAAAASUVORK5CYII=

Заходим в консоль и смотрим информацию о подключении:

Q7ZDAZkeD5IHqxR00myNauwopyDnHitgFLZgaQq9yhmbBt6baxOs6xOK+43npgKfspGgIMAAlA9f8S4fTT5td9DO0AAAAASUVORK5CYII=

Все верно сработало. Мы подключились с помощью роли alex к базе alex. Если нужно указать другую базу данных, вы можете сделать это с помощью опции -d, например:

psql -d postgres

AXu3ZA3MmjUvAAAAAElFTkSuQmCC

Все сработало верно, при условии, что все компоненты были настроены как описано выше.

Создание таблиц

Теперь, когда вы знаете, как подключится к базе данных PostgreSQL, давайте рассмотрим, как выполняются основные задачи. Сначала разберем создание таблиц для хранения некоторых данных. Для создания таблицы PostgreSQLиспользуется такой синтаксис:

CREATE TABLE имя_таблицы (имя_колонки1 тип_колонки (длина) ограничения, имя_колонки2 тип_колонки (длина), имя_колонки3 тип_колонки (длина));

Как видите, сначала мы задаем имя таблицы, затем описываем каждый столбец. Столбец должен иметь имя, тип и размер, также можно задать ограничения для данных, которые там будут содержаться. Например:

CREATE TABLE playground (equip_id serial PRIMARY KEY, type varchar (50) NOT NULL, color varchar (25) NOT NULL, location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')), install_date date );

BJQpdSr1BRyAAAAAAElFTkSuQmCC

Мы создали таблицу детской площадки для описания оборудования, которое на ней есть. Сначала идет идентификатор equip_id, который имеет тип serial, это значит, что его значение будет автоматически увеличиваться, ключ primary key значит, что значения должны быть уникальны.

Следующие колонки - обычные строки, для них мы задаем длину поля, они не могут быть пустыми (NOT NULL). Следующий столбец тоже строка, но она может содержать только одно из указанных значений, последний столбец - дата создания.

Вы можете вывести все таблицы, выполнив команду:

w8xx87mvdlmxAAAAABJRU5ErkJggg==

Здесь мы видим, что кроме нашей таблицы, существует еще одна переменная -playground_equip_id_seq. В ней содержится последнее значение этого поля. Если нужно вывести только таблицы, выполните:

6QAAAABJRU5ErkJggg==

Выводы

Теперь установка Postgresql в Ubuntu 20.04 завершена, и вы прошли краткий экскурс в синтаксис PgSQL, который очень похож на привычный нам MySQL, но имеет некоторые отличия. Если у вас остались вопросы, спрашивайте в комментариях!

Если вы хотите увидеть все новые функции и улучшения в PostgreSQL 12, посетите страницу заметок о выпуске PostgreSQL 12, так что проверьте основные улучшения в PostgreSQL 12. Не будем долго ждать, давайте остановимся на установке PostgreSQL 12 в системе Ubuntu 18.03 Linux.

Шаг 1: Обновление системы

Рекомендуется обновить ваши текущие системные пакеты, если это новый экземпляр сервера.

Перезагрузка необходима после обновления.

Шаг 2: Добавьте репозиторий PostgreSQL 12

Нам нужно импортировать ключ GPG и добавить репозиторий PostgreSQL 12 на нашу машину с Ubuntu. Выполните следующие команды, чтобы выполнить это.

После импорта ключа GPG добавьте содержимое репозитория в вашу систему Ubuntu 18.04 / 16.04:

Добавленный репозиторий содержит много различных пакетов, включая сторонние дополнения. Они включают:

  • PostgreSQL-клиент
  • PostgreSQL
  • libpq-DEV
  • PostgreSQL-сервер-DEV
  • пакеты pgadmin

Шаг 3: Установите PostgreSQL 12 на Ubuntu 18.04 / Ubuntu 16.04 LTS

Теперь хранилище успешно добавлено, обновите список пакетов и установите серверные и клиентские пакеты PostgreSQL 12 в вашей системе Ubuntu 18.04 / Ubuntu 16.04 Linux.


Сервис PostgreSQL запускается и настроен на запуск после каждой перезагрузки системы.

Шаг 4. Проверка соединения с PostgreSQL

Во время установки пользователь postgres создается автоматически. Этот пользователь имеет полный доступ superadmin ко всему вашему экземпляру PostgreSQL. Прежде чем переключиться на эту учетную запись, ваш системный пользователь должен иметь права sudo.

Давайте сбросим этот пароль пользователя на надежный пароль, который мы можем запомнить.

Запустите приглашение PostgreSQL с помощью команды:

Получить информацию о подключении, как показано ниже.

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

Список созданных баз данных:

Подключиться к базе данных:

Другие установленные утилиты PostgreSQL, такие как createuser и creatb, могут использоваться для создания базы данных и пользователей.

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

Шаг 5. Настройка удаленного подключения (необязательно)

Чтобы включить удаленные подключения, отредактируйте файл конфигурации PostgreSQL:

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

Все работы на нашем сервере мы будем производить под учётной записью, имеющей привилегии sudo . Также, на нашем сервере установлен и настроен брандмауэр UFW .

Установка PostgreSQL

Поскольку PostgreSQL устанавливается из стандартных репозиториев Ubuntu, для запуска установки подключитесь к вашему серверу под учётной записью, входящей в группу sudo , и наберите в командной строке:

После завершения установки вы можете убедиться, что служба PostgreSQL активна. Для чего в командной строке наберите:

Проверка активности PostgreSQL - как установить PostgreSQL и pgAdmin4 в Ubuntu 20.04

Также, посмотрите, включена ли служба:

Проверка запуска PostgreSQL - как установить PostgreSQL и pgAdmin4 в Ubuntu 20.04

И наконец, вы можете увидеть статус службы PostgreSQL:

Проверка статуса PostgreSQL - как установить PostgreSQL и pgAdmin4 в Ubuntu 20.04

После чего, убедитесь, что PostgreSQL-сервер готов принимать подключения от клиентов:

Проверка готовности PostgreSQL - как установить PostgreSQL и pgAdmin4 в Ubuntu 20.04

Создание базы данных в PostgreSQL

Чтобы создать новую базу данных, вы должны получить доступ к программной оболочке PostgreSQL. Во-первых, подключитесь к системе с помощью учётной записи postgres :

Подключение пользователем postgres

Подключившись, выполните команду psql :

Запуск команды psql

Добавление пользователя

Следующая команда создаст базу данных, которую мы назовём, например, bobdb :

Создание базы данных

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

Назначение пользователю прав

Чтобы покинуть оболочку, наберите:

Выход из оболочки

И теперь, можно отключить от системы пользователя postgres :

Отключение пользователя postgres

Настройка клиентской аутентификации PostgreSQL

СУБД PostgreSQL использует клиентскую аутентификацию для того, чтобы решать, какая учётная запись к какой базе данных и с какого хоста может подключаться. Это определяется настройками конфигурационного файла клиентской аутентификации. В Ubuntu таким файлом является файл pg_hba.conf . Он располагается в директории /etc/postgresql/12/main/ .

Откройте этот файл для редактирования, например, с помощью текстового редактора nano :

PostgreSQL использует много типов методов клиентской аутентификации, таких как peer, ident, password или md5. Тип md5 является наиболее безопасным и рекомендуемым по причине того, что он требует от клиента использовать для аутентификации пароли с двойным md5-хешированием. Поэтому нам остаётся лишь убедиться, что в строках ниже указан именно метод md5:

Если вы произвели в конфигурационном файле какие-либо изменения, не забудьте сохранить их при закрытии файла. В nano для этого необходимо нажать Ctrl X , затем Y и Enter . После чего, перезапустите службу:

Установка pgAdmin4

Пакет pgAdmin4 не доступен для установки из официальных репозиториев Ubuntu. Поэтому мы будем устанавливать его из репозитория pgAdmin4 APT . Для этого сначала необходимо установить данный репозиторий.

Добавьте публичный ключ для репозитория и создайте его конфигурационный файл. Для чего наберите следующие команды:

Затем запустите установку pgAdmin4:

Работа скрипта setup-web.sh

В процессе установки скрипт перезапустит службу Apache2 для того, чтобы вступили в силу произведённые изменения.

После того, как скрипт закончит свою работу, вам нужно будет добавить разрешение для Apache2 на доступ через брандмауэр. Чтобы сделать это, наберите:

Запуск брандмауэра UFW

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

Проверка статуса брандмауэра UFW

Настройка доступа через веб-интерфейс

Чтобы получить доступ к веб-интерфейсу pgAdmin4, откройте браузер и введите адрес в строке навигации:

После этого вы увидите страницу для подключения к pgAdmin4. Для входа используйте адрес электронной почты и пароль, который вы вводили при работе скрипта setup-web.sh :

В случае успешной авторизации, вы попадёте на панель веб-приложения pgAdmin4. Там, вы можете подключиться к своему серверу PostgreSQL, нажав на ярлык Add New Server:

Стартовая страница pgAdmin4

Далее, заполните данные нового сервера на закладке General и перейдите на закладку Connection :

Добавление сервера

Добавление сервера - как установить PostgreSQL и pgAdmin4 в Ubuntu 20.04

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

Панель управления pgAdmin4 - как установить PostgreSQL и pgAdmin4 в Ubuntu 20.04

Таким образом, мы установили СУБД PostgreSQL, создали там учётную запись, базу данных и добавили созданному пользователю набор полномочий по отношению к созданной базе. После чего, мы подключились к СУБД PostgreSQL при помощи веб-интерфейса pgAdmin4. Основой всего нам послужил виртуальный выделенный сервер (VPS), работающий под управлением операционной системы Ubuntu 20.04.


PostgreSQL является самой продвинутой свободно распространяемой СУБД с очень хорошей поддержкой стандарта SQL. В данной статье мы разберем, как установить PostgreSQL в Ubuntu и как произвести первоначальную настройку для того чтобы начать работу с ней.

Установка из репозитория ubuntu

Сперва обновим локальный индекс пакетов, а затем установим posgresql:

Если требуется установить другую версию PostgreSQL мы можем воспользоваться инструкцией ниже.

Установка из репозитория postgresql

Установить другую версию мы можем из репозитория postgresql:

Кроме того, мы можем установить postgresql с помощью docker. О том как это можно сделать написано в данной статье: Установка PostgreSQL с помощью docker-compose.

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

Использование ролей для подключения в PostgreSQL

После установки PostgreSQL использует метод аутентификации ident. Данный способ аутентификации использует учетные записи операционной системы в качестве разрешённого имени пользователя базы данных. Это означает, что если в операционной системе существует пользователь с таким же именем, что и роль в Postgres, то он может выполнять вход в качестве данной роли.

По умолчанию в ходе установки Postgres создает учетную запись c названием postgres, которая связана с аналогичной ролью. Поэтому для использования Postgres нам необходимо войти в эту учетную запись. Сделать это мы можем несколькими способами.

Переключение на учетную запись postgres

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

После этого мы можем использовать командную строку PostgresSQL для управления нашими базами данных:

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

С помощью этой команды мы вернемся к учетной записи postgres.

Используем командную строку postgres без переключения учетной записи

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

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

Создание новой роли в PostgreSQL

На текущий момент у нас существует только роль postgres. Для создания новой роли мы можем использовать команду createrole с флагом --interactive. При указание данного флага будет запрошено имя для создаваемой роли и права, которые необходимо ей присвоить. Если планируется вход по паролю для создаваемого пользователя, то мы можем также добавить флаг -P. Либо можно использовать команду \password уже после создания пользователя.

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

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

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

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

Этот запрос выведет список всех имеющихся ролей.

Удаление пользователя

Если вам необходимо удалить только, что созданного пользователя можно использовать команду dropuser:

Для получения более детальной информации по команде dropuser используем man dropuser.

Создание новой базы данных

Для создания новой базы данных можно использовать команду createdb. Чтобы указать пользователя в качестве владельца создаваемой базы мы можем добавить флаг -O :

Чтобы посмотреть список все баз данных заходим в psql и выполняем команду \l:

Вывод команды покажет не только список существующих баз данных, но и их владельцев. Для переключения между базами данных можем использовать команду \connect dbname.

Подключение к базе данных с новой ролью

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

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

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

Заключение

В данной статье описаны способы установки PostgreSQL, а также базовые аспекты работы с ней. Более детальную информацию по работе с данной СУБД можно узнать из официальной документации.

Читайте также: