Главная >> Инструкции >> Установка PostgreSQL в Ubuntu

Установка PostgreSQL в 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

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'

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

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 вы можете войти в консоль управления:

psql

qB7YIAAAAASUVORK5CYII=

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

\conninfo

AZl3R9oWNdWtmo0mbESvqGD9PFvtk1KNMMUU4yH8P7pEDPO2B5uMAAAAAElFTkSuQmCC

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

\q

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

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

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

createuser --interactive

AAAAAElFTkSuQmCC

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

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

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

createdb alex

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

sudo su - alex

8HKGPz6sRI9TQAAAAASUVORK5CYII=

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

psql

\conninfo

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

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

\d

w8xx87mvdlmxAAAAABJRU5ErkJggg==

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

\dt

6QAAAABJRU5ErkJggg==

Выводы

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

Реклама
Посмотреть детали

Proton Drive — это облачное хранилище со сквозным шифрованием от компании, которая создала Proton Mail, которое может стать хорошей заменой Google Диску. Все файлы шифруются на вашем устройстве, поэтому они недоступны даже для самой компании Proton. Вы получаете синхронизацию между устройствами, общий доступ к файлам, автоматическое резервное копирование фото и удобные приложения для всех платформ, но с гарантией, что ваши данные останутся исключительно вашими и никто не будет тренировать на них AI. В бесплатной версии доступно 5 ГБ места на диске. Посмотреть детали

23 комментария к “Установка PostgreSQL в Ubuntu”

  1. $ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'
    $ wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -
    не работает команда выдает в консоли
    E: Не удалось получить http://apt.postgresql.org/pub/repos/apt/dists/sylvia-pgdg/main/binary-amd64/Packages 404 Not Found [IP: 174.143.35.246 80]

    Ответить
  2. oc может определять postgres как зарегистрированнгого юзера и требовать пароль. Как выход -изменить пароль при помощи sudo usermod.
    Спасибо за сайт с лучшими статьями по линукс и не только. Подписался на рассылку.

    Ответить
  3. oC может определять postgres как зарегистрированнгого юзера и требовать пароль. Как выход -изменить пароль при помощи sudo usermod.

    Спасибо за сайт с лучшими статьями по линукс и не только. Подписался на рассылку.

    Ответить
  4. Некропост, но... Сейчас устанавливаю постгрес по этой инструкции (текущая версия 12) и на шаге

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

    происходит затык, как описано выше в комментариях. Просит пароль от пользователя postgres

    Если пробовать так: "sudo -u postgres psql sergiy" из под основного пользователя то заходит в бд
    " You are connected to database "sergiy" as user "postgres", а нам же надо зайти из под нового пользователя а не из под postgres

    Что делаем не так? Спасибо!

    Ответить
    • тут ошибка,чтобы войти под новой ролью необходимо еще создать нового пользователя в системе LInux
      вот выдержка из основной статьи на английском языке"Если же вы предпочитаете использовать sudo для каждой команды без переключения с обычной учетной записи, введите следующую команду:

      sudo -u postgres createuser --interactive"

      Ответить
  5. 1 Чтобы выйти из командной строки PostgreSQL выполните следующую команду:
    /q
    2 Чтобы выйти из пользователя postgres выполните следующую команду:
    exit

    Ответить
  6. Вот правильный вариант, сразу после как установили.
    sudo su - postgres
    psql -c "alter user postgres with password 'fdsvvfdv1w'"
    createuser dbuser
    createdb testdb -O dbuser - сразу назначаем владельца БД
    $ psql testdb
    testdb=#\password dbuser
    тут вам предложет ввесть пароль и в рпинцепи всё!

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

    Ответить
  8. Следующим шагом будет установка пароля для пользователя postgres.
    Выполните следующую команду в командной строке терминала для подключения к базе данных шаблонов PostgreSQL по умолчанию:

    sudo -u postgres psql template1

    Приведенная выше команда подключается к базе данных PostgreSQL template1 от имени пользователя postgres. Как только вы подключитесь к серверу PostgreSQL, вы увидите запрос SQL. Вы можете запустить следующую команду SQL в psql командной строке, чтобы настроить пароль для пользователя postgres.

    ALTER USER postgres with encrypted password 'your_password';

    Ответить

Оставьте комментарий