Как установить PostgreSQL в Ubuntu 18.04

How to Install PostgreSQL on Ubuntu 18.04

19 Октября 2020 | Ubuntu

В этом руководстве мы покажем вам, как установить PostgreSQL в Ubuntu 18.04, и изучим основы базового администрирования баз данных.

Как установить PostgreSQL в Ubuntu 18.04

PostgreSQL или Postgres - это универсальная объектно-реляционная система управления базами данных с открытым исходным кодом. PostgreSQL имеет множество расширенных функций, которые позволяют создавать сложные веб-приложения. 

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

Установите PostgreSQL в Ubuntu 

На момент написания этой статьи последней версией PostgreSQL, доступной в официальных репозиториях Ubuntu, была PostgreSQL версии 10.4.

Чтобы установить PostgreSQL на свой сервер Ubuntu, выполните следующие действия:

  1. Установка PostgreSQL

    Обновите локальный индекс пакета и установите сервер PostgreSQL вместе с пакетом Contrib PostgreSQL, который предоставляет несколько дополнительных функций для базы данных PostgreSQL:

    sudo apt update sudo apt install postgresql postgresql-contrib 
    
    
  2. Проверка установки PostgreSQL

    После завершения установки служба PostgreSQL запустится автоматически.

    Чтобы проверить установку, мы попытаемся подключиться к серверу базы данных PostgreSQL с помощью psql и распечатать версию сервера :

    sudo -u postgres psql -c "SELECT version();" 
    
    
    



psql - это интерактивная утилита командной строки, которая позволяет вам взаимодействовать с сервером PostgreSQL.

Роли и методы аутентификации PostgreSQL 

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

  • Доверие - с помощью этого метода роль может подключаться без пароля, если pg_hba.conf выполняются критерии, определенные в .
  • Пароль - роль может подключиться, указав пароль. Пароли могут храниться в виде scram-sha-256 md5 и password (в виде открытого текста).
  • Ident - этот метод поддерживается только для соединений TCP / IP. Работает путем получения имени пользователя операционной системы клиента с необязательным отображением имени пользователя.
  • Peer - То же, что и Ident, но поддерживается только для локальных подключений.

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

postgres Пользователя создается автоматически при установке PostgreSQL. Этот пользователь является суперпользователем для экземпляра PostgreSQL и эквивалентен пользователю root MySQL.

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

sudo su - postgres psql 


    Отсюда вы можете взаимодействовать со своим экземпляром PostgreSQL. Чтобы выйти из оболочки PostgreSQL, введите:

\q
 

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

sudo -u postgres psql 

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

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

Вы можете создавать новые роли из командной строки с помощью createuser команды. Только суперпользователи и роли с CREATEROLE привилегиями могут создавать новые роли.

В следующем примере мы создадим новую роль с именем john базы данных johndb и предоставим привилегии для этой базы данных.

  1. Создайте новую роль PostgreSQL

    Следующая команда создаст новую роль с именем john:

    sudo su - postgres -c "createuser john" 
    
    
  2. Создайте новую базу данных PostgreSQL

    Создайте новую базу данных с именем johndb, используя createdb команду:

    sudo su - postgres -c "createdb johndb" 
    
    
  3. Предоставлять привилегии

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

    sudo -u postgres psql 
    
    

    и запустите следующий запрос:

    grant all privileges on database johndb to john; 

Включить удаленный доступ к серверу PostgreSQL 

По умолчанию сервер PostgreSQL прослушивает только локальный интерфейс 127.0.0.1 . Чтобы включить удаленный доступ к вашему серверу PostgreSQL, откройте файл конфигурации postgresql.conf и добавьте listen_addresses = '*' в CONNECTIONS AND AUTHENTICATION раздел.

sudo vim /etc/postgresql/10/main/postgresql.conf 
/etc/postgresql/10/main/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'     # what IP address(es) to listen on;
 

сохраните файл и перезапустите службу PostgreSQL с помощью:

sudo service postgresql restart 

Проверьте изменения с помощью ss утилиты:

ss -nlt | grep 5432 
LISTEN   0         128                 0.0.0.0:5432             0.0.0.0:*
LISTEN   0         128                    [::]:5432                [::]:*
 

Как видно из выходных данных выше, сервер PostgreSQL прослушивает все интерфейсы (0.0.0.0).

Последний шаг - настроить сервер для приема удаленных подключений путем редактирования pg_hba.conf файла.

Ниже приведены несколько примеров, показывающих различные варианты использования:

/etc/postgresql/10/main/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# The user jane will be able to access all databases from all locations using a md5 password
host    all             jane            0.0.0.0/0                md5

# The user jane will be able to access only the janedb from all locations using a md5 password
host    janedb          jane            0.0.0.0/0                md5

# The user jane will be able to access all databases from a trusted location (192.168.1.134) without a password
host    all             jane            192.168.1.134            trust
 

Вывод 

Вы узнали, как установить и настроить PostgreSQL на сервере Ubuntu 18.04.

Обратитесь к PostgreSQL 10.4 Документация для получения дополнительной информации по этой теме.


    Комментарии

    Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Загрузка комментариев...