Как установить postgresql на ubuntu
Обновлено: 04.07.2024
Рекомендую к прочтению:
В этом руководстве вы узнаете, как установить PostgreSQL в Ubuntu 20.04.
Что требуется для установки PostgreSQL?
Перед установкой Postgres в Ubuntu вам необходимо выполнить некоторые основные требования.
- Установленная Ubuntu 20.04
- Привилегии Sudo для установки пакетов.
- Подключение к интернету.
Установка PostgreSQL в Ubuntu
PostgreSQL доступен в репозиториях Ubuntu по умолчанию. Просто используйте команду apt для установки PostgreSQL. Наиболее распространенными установленными пакетами являются PostgreSQL server, client, pgadmin, а также библиотеки.
Для установки конкретной версии вы можете использовать PostgreSQL Apt repository.
Чтобы установка PostgreSQL Ubuntu прошла гладко, выполните следующие действия.
Во-первых, убедитесь, что ваша система находится в актуальном состоянии, выполнив следующую команду.
$ sudo apt install postgresql postgresql-contrib
После завершения установки PostgreSQL запустите службу PostgreSQL. Это можно сделать командой которая написана ниже.
$ sudo systemctl start postgresql.service
Также включите автоматический запуск службы PostgreSQL при загрузке системы. Делается это командой.
$ sudo systemctl enable postgresql.service
После установки вы можете проверить состояние PostgreSQL, выполнив следующую команду.
$ sudo systemctl status postgresql.service
По умолчанию пользователь Postgres создается во время установки. Чтобы получить доступ к оболочке Postgres, сначала переключитесь на пользователя Postgres.
Теперь введите команду psql,
Для проверки версии PostgreSQL выполните следующую команду:
Создание роли в PostgreSQL
Чтобы создать новую роль например с именем john, введите следующую команду в оболочке PostgreSQL.
Создание базы данных в PostgreSQL
Для создания новой базы данных требуется программа PostgreSQL database shell (psql). Войдите в оболочку psql и введите следующую команду, чтобы создать пользователя и установить пароль. Здесь я собираюсь создать имя пользователя jacky с паролем mystrongpassword. Вы можете создать свой собственный.
Создайте базу данных (например, gallary), используя следующую команду,
Предоставьте доступ к БД которую только что создали.. Здесь я собираюсь предоставить все права на базу данных gallery, чтобы пользователь jacky мог в ней работать.
Чтобы выйти из оболочки PostgreSQL требуется ввести команду q и нажать enter.
Включение удаленного доступа к PostgreSQL
По умолчанию PostgreSQL слушает на интерфейсе 127.0.0.1. Если вы хотите получить доступ к базе данных из другого места. Тогда вам требуется настроить PostgreSQL для прослушки различных сетевых интерфейсов. Чтобы настроить PostgreSQL для различных интерфейсов, откройте конфигурационный файл PostgreSQL с помощью nano или другим текстовым редактором. Я буду использовать редактор Vim.
$ sudo vi /etc/postgresql/12/main/postgresql.conf
Сохраните свою конфигурацию и перезапустите сервер PostgreSQL, чтобы изменения отразились в БД.
$ sudo systemctl restart postgresql.service
Теперь можно проверить прослушивает ли PostgreSQL другой интерфейс. Для этого выполните следующую команду.
Также проверьте правило брандмауэра UFW, делается это командой.
Заключение
В этом руководстве вы узнали, как установить сервер PostgreSQL на Ubuntu 20.04. Кроме того, вы также узнали, как привязать PostgreSQL к различным сетевым интерфейсам, чтобы принимать соединения от удаленного клиента.
Реляционные системы управления базами данных (РСУБД) - это ключевой компонент многих веб-сайтов и приложений. Они обеспечивают структурированный способ хранения данных и организацию доступа к информации. 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, но имеет некоторые отличия. Если у вас остались вопросы, спрашивайте в комментариях!
Все работы на нашем сервере мы будем производить под учётной записью, имеющей привилегии 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, или Postgres, — это система управления реляционными базами данных, которая представляет собой реализацию языка запросов SQL. Она соответствует стандартам и обладает множеством передовых функций, таких как надежность и параллельность операций без блокировки при чтении.
В этом обучающем руководстве мы рассмотрим, как установить Postgres на сервер Ubuntu 20.04.
Предварительные требования
Для выполнения данного руководства вам потребуется один сервер Ubuntu 20.04 с конфигурацией, выполненной согласно руководству по первоначальной настройке сервера Ubuntu 20.04. После выполнения всех предварительных действий ваш сервер должен иметь пользователя без прав root с разрешениями sudo и базовый брандмауэр.
Шаг 1 — Установка PostgreSQL
Для установки PostgreSQL в первую очередь обновите локальный индекс пакетов вашего сервера:
После этого установите пакет Postgres вместе с пакетом -contrib , который содержит дополнительные утилиты и функциональные возможности:
Шаг 2 — Использование ролей и баз данных в PostgreSQL
По умолчанию Postgres использует концепцию «ролей» для выполнения аутентификации и авторизации. В некоторых аспектах они аналогичны обычным пользователям и группам в Unix.
После установки Postgres настроена на использование аутентификации ident, что значит, что выполняется привязка ролей Postgres с соответствующей системной учетной записью Unix/Linux. Если роль существует внутри Postgres, пользователь Unix/Linux с тем же именем может выполнить вход в качестве этой роли.
В ходе установки была создана учетную запись пользователя postgres, которая связана с используемой по умолчанию ролью postgres. Существует несколько способов использования этой учетной записи для доступа к Postgres. Один из способов — переход к учетной записи postgres на вашем сервере с помощью следующей команды:
Затем вы можете получить доступ к командной строке Postgres с помощью команды:
В результате вы можете получить доступ к командной строке PostgreSQL, а уже отсюда свободно взаимодействовать с системой управления базами данных.
Для выхода из командной строки PostgreSQL выполните следующую команду:
В результате вы вернетесь в командную строку postgres в Linux.
Также вы можете запустить необходимую вам команду с учетной записью postgres напрямую с помощью sudo :
Это позволит выполнить вход в Postgres без необходимости использования промежуточной командной строки bash .
Вы снова сможете выйти из интерактивного сеанса Postgres с помощью следующей команды:
Шаг 3 — Создание новой роли
Если вы выполнили вход в учетную запись postgres, то можете создать новую роль с помощью следующей команды:
Если же вы предпочитаете использовать sudo для каждой команды без переключения с обычной учетной записи, введите следующую команду:
Шаг 4 — Создание новой базы данных
Еще одно предположение, которое система аутентификации Postgres использует по умолчанию, состоит в том, что для любой роли, используемой для входа, существует база данных с тем же именем, к которой роль может получить доступ.
Это означает, что если созданный вами в последнем разделе пользователь будет иметь имя sammy, эта роль попытается подключиться к базе данных, которая также называется «sammy» по умолчанию. Вы можете создать соответствующую базу данных с помощью команды createdb .
Если вы используете учетную запись postgres, необходимо ввести следующее:
Если же вы предпочитаете использовать sudo для каждой команды без переключения с обычной учетной записи, введите следующую команду:
Шаг 5 — Открытие командной строки Postgres с новой ролью
Чтобы выполнить аутентификацию с помощью ident , вам потребуется пользователь Linux с тем же именем, что и имя роли и базы данных в Postgres.
Если у вас нет соответствующего пользователя Linux, то вы можете создать его с помощью команды adduser . Вы должны воспользоваться учетной записи без прав root с привилегиями sudo (т.е. не выполняя вход в качестве пользователя postgres):
Когда новая учетная запись будет доступна, вы можете переключиться и подключиться к базе данных следующим образом:
Либо же вы можете сделать следующее:
Эта команда позволит выполнить вход автоматически, полагая, что все компоненты были настроены должным образом.
Если вы хотите, чтобы ваш пользователь подключился к другой базе данных, то вы можете сделать это с помощью следующей команды:
После входа вы можете проверить данные о текущем подключении:
Заключение
Вы настроили PostgreSQL на сервере Ubuntu 20.04. Если вы хотите узнать больше о системе Postgres и способах ее использования, мы рекомендуем вам изучить следующие руководства:
Реляционные СУБД являются ключевыми элементами для многих сайтов и веб-приложений. Они дают возможность структурированно хранить информацию и удобно работать с ней.
PostgreSQL – это реляционная СУБД, базирующаяся на языке SQL. Ее используют в проектах разного масштаба, так как она совместима со многими Unix-подобными ОС (а также macOS и Microsoft Windows) и обладает расширенной функциональностью.
Далее вы узнаете, как установить PostgreSQL на свой сервер, а также получите общую информацию о работе с ролями, базами данных и таблицами.
Требования к серверу
Для выполнения инструкций из этой статьи у вас должен быть сервер с установленной ОС Ubuntu 18.04, пользователем, который может выполнять команды sudo, и базовым файрволом.
Шаг 1: Установка PostgreSQL
Установка выполняется стандартно с использованием утилиты apt, так как PostgreSQL по умолчанию есть в репозиториях Ubuntu.
Сначала обновите локальный индекс пакетов:
Затем установите PostgreSQL вместе с пакетом –contrib, который содержит дополнительные полезные инструменты для работы с СУБД:
Следующая задача – проверить, все ли все работает, и понять, чем PostgreSQL отличается от других похожих СУБД.
Шаг 2: Использование ролей и баз данных
По умолчанию PostgreSQL использует концепцию ролей (role) для процедур аутентификации и авторизации. Роли в чем-то похожи на стандартные Unix-аккаунты, но отличие заключается в том, что PostgreSQL не выделяет пользователей и группы по отдельности, а вместо них использует более гибкий термин – «роль».
После установки СУБД настроена на использование идентичной (ident) аутентификации: роли PostgreSQL будут связаны с такими же аккаунтами в системах Unix/Linux. Если роль существует в PostgreSQL, то пользователь Unix/Linux с таким же именем сможет авторизоваться в СУБД под этой ролью.
Во время установки будет создан аккаунт postgres, который будет ассоциироваться с ролью PostgreSQL по умолчанию. Под ним нужно авторизоваться для того, чтобы начать работу с PostgreSQL.
Есть несколько способов получить доступ к PostgreSQL через этот аккаунт.
Во-первых, вы можете переключиться на этот аккаун т:
А дальше перейти в консоль PostgreSQL:
Для того чтобы выйти из нее, надо ввести:
И тогда вы вернетесь в консоль Linux.
Во-вторых, можно выполнить нужную команду от аккаунта postgres без переключения аккаунтов , т.е. с использованием sudo.
Например, попасть в консоль PostgreSQL можно всего одной командой:
Теперь перейдем к работе с ролями, так как зачастую для работы с PostgreSQL требуется больше одной роли.
Шаг 3: Создание новой роли
Для создания ролей используется команда createrole. Если использовать ключ --interactive, то у вас будет запрошено имя новой роли. Кроме того, этой роли можно выдать и права суперпользователя.
После авторизации под аккаунтом postgres создайте нового пользователя:
Если вам удобнее использовать вариант без переключения аккаунтов, тогда команда будет выглядеть следующим образом:
Затем вам нужно будет выбрать имя для роли и решить, будут ли у нее права суперпользователя.
Если вам нужно еще больше настроек для создаваемой роли, посмотрите все возможные ключи при помощи команды:
Итак, у вас появился новый пользователь, но пока нет ни одной добавленной базы данных. Далее рассмотрим, как добавить новую БД.
Шаг 4: Создание новой базы данных
Еще одна предустановка PostgreSQL заключается в том, что для каждой роли, используемой для авторизации, предполагается база данных с таким же названием, к которой данная роль имеет доступ.
Команда без переключения аккаунта будет выглядеть следующим образом:
Шаг 5: Создание таблицы
Перейдем к работе с таблицами.
Базовый синтаксис для создания таблицы:
Сначала команда дает таблице имя, затем определяет названия столбцов, а также их тип и максимальную длину значений.
Существует множество типов данных, например:
- date – календарная дата;
- int – стандартный целочисленный тип;
- varchar – символьная строка переменной длины, которая указывается в скобках;
- real – число одинарной точности с плавающей точкой;
- point – геометрическая точка в плоскости.
Пример команды с заполненными данными:
Дефисы используются для того, чтобы задать комментарий для столбца.
Можно задать комментарий и для таблицы:
Если вы хотите удалить комментарий, то нужно ввести:
Для того чтобы посмотреть созданную таблицу, введите:
Шаг 6: Добавление и удаление данных
Для добавления новой информации используется команда INSERT INTO. Можно использовать два варианта команды: короткий и длинный.
Синтаксис короткого варианта команды:
В этом случае вам нужно помнить последовательность столбцов, чтобы ввести правильное значение для каждого столбца.
Второй вариант – использовать команду с указанием столбцов:
В этом случае данные будут записаны в соответствующие указанные столбцы.
Для удаления данных используйте команду DELETE FROM. Если вы введете команду.
. будут удалены все строки, в которых значение выбранного столбца равняется заданному значению.
Тут важно помнить, что команда без указания уточняющих данных удалит все строки таблицы:
Шаг 7: Добавление и удаление столбцов
Для добавления столбцов используется команда ALTER TABLE:
После ввода этой команды в таблице появится новый столбец с выбранным названием.
Удалять столбцы легко, просто замените ADD на DROP:
После этого указанный столбец и его данные будут удалены.
Вместо заключения
В этой статье дана только базовая информация, которая поможет вам разобраться в том, как установить PostgreSQL и работать с этой СУБД. Для более детального изучения я рекомендую обратиться к официальной документации на английском языке либо к ее русскому переводу .
Читайте также: