Как установить postgresql 12 на ubuntu
Реляционные системы управления базами данных (РСУБД) - это ключевой компонент многих веб-сайтов и приложений. Они обеспечивают структурированный способ хранения данных и организацию доступа к информации. 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
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'
Далее обновите списки пакетов, чтобы получить самую новую доступную версию:
sudo apt update
Установка PostgreSQL из PPA или официальных репозиториев выглядит одинаково:
sudo apt -y install postgresql
Настройка PostgreSQL в Ubuntu 20.04
После установки СУБД откройте терминал и переключитесь на пользователя postgres с помощью команды:
sudo -i -u postgres
Эта учетная запись создается во время установки программы и на данный момент вы можете получить доступ к системе баз данных только с помощью нее. По умолчанию PostgreSQL использует концепцию ролей для аутентификации и авторизации.
Это очень похоже на учетные записи Unix, но программа не различает пользователей и групп, есть только роли. Сразу после установки PostgreSQL пытается связать свои роли с системными учетными записями, если для имени системной учетной записи существует роль, то пользователь может войти в консоль управления и выполнять позволенные ему действия. Таким образом, после переключения на пользователя postgres вы можете войти в консоль управления:
И посмотреть информацию о соединении:
Чтобы выйти наберите:
Теперь рассмотрим, как создать другие роли и базы данных.
Создание роли postgresql
Вы уже можете полноценно работать с базой данных с помощью учетной записи postgres, но давайте создадим дополнительную роль. Учетная запись postgres является администратором, поэтому имеет доступ к функциям управления. Для создания пользователя выполните команду:
Скрипт задаст лишь два вопроса, имя новой роли и нужно ли делать ее суперпользователем.
Создание базы данных
Точно также как имена ролей сопоставляются с системными пользователями, имя базы данных будет подбираться по имени пользователя. Например, если мы создали пользователя alex, то по умолчанию система попытается получить доступ к базе данных alex. Мы можем ее очень просто создать:
Дальше, чтобы подключиться к этой базе данных нам нужно войти от имени одноименного пользователя:
Заходим в консоль и смотрим информацию о подключении:
Все верно сработало. Мы подключились с помощью роли alex к базе alex. Если нужно указать другую базу данных, вы можете сделать это с помощью опции -d, например:
psql -d postgres
Все сработало верно, при условии, что все компоненты были настроены как описано выше.
Создание таблиц
Теперь, когда вы знаете, как подключится к базе данных 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 );
Мы создали таблицу детской площадки для описания оборудования, которое на ней есть. Сначала идет идентификатор equip_id, который имеет тип serial, это значит, что его значение будет автоматически увеличиваться, ключ primary key значит, что значения должны быть уникальны.
Следующие колонки - обычные строки, для них мы задаем длину поля, они не могут быть пустыми (NOT NULL). Следующий столбец тоже строка, но она может содержать только одно из указанных значений, последний столбец - дата создания.
Вы можете вывести все таблицы, выполнив команду:
Здесь мы видим, что кроме нашей таблицы, существует еще одна переменная -playground_equip_id_seq. В ней содержится последнее значение этого поля. Если нужно вывести только таблицы, выполните:
Выводы
Теперь установка 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-сервер готов принимать подключения от клиентов:
Создание базы данных в PostgreSQL
Чтобы создать новую базу данных, вы должны получить доступ к программной оболочке PostgreSQL. Во-первых, подключитесь к системе с помощью учётной записи postgres :
Подключившись, выполните команду psql :
Следующая команда создаст базу данных, которую мы назовём, например, bobdb :
Теперь, назначьте своему пользователю все права сразу на вашу базу данных. В нашем примере это будет выглядеть так:
Чтобы покинуть оболочку, наберите:
И теперь, можно отключить от системы пользователя 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:
В процессе установки скрипт перезапустит службу Apache2 для того, чтобы вступили в силу произведённые изменения.
После того, как скрипт закончит свою работу, вам нужно будет добавить разрешение для Apache2 на доступ через брандмауэр. Чтобы сделать это, наберите:
Убедитесь, что служба Apache2 включена в список разрешённых на брандмауэре вашего сервера:
Настройка доступа через веб-интерфейс
Чтобы получить доступ к веб-интерфейсу pgAdmin4, откройте браузер и введите адрес в строке навигации:
После этого вы увидите страницу для подключения к pgAdmin4. Для входа используйте адрес электронной почты и пароль, который вы вводили при работе скрипта setup-web.sh :
В случае успешной авторизации, вы попадёте на панель веб-приложения pgAdmin4. Там, вы можете подключиться к своему серверу PostgreSQL, нажав на ярлык Add New Server:
Далее, заполните данные нового сервера на закладке General и перейдите на закладку Connection :
Если введённые учётные данные корректны, вы попадёте в панель управления pgAdmin4. Здесь, вы даже можете найти ту базу данных, которую вы создавали при настройке PostgreSQL. В нашем примере это была база данных bobdb .
Таким образом, мы установили СУБД 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, а также базовые аспекты работы с ней. Более детальную информацию по работе с данной СУБД можно узнать из официальной документации.
Читайте также: