Как установить PostgreSQL на CentOS 7

Как установить PostgreSQL на CentOS 7

How to Install PostgreSQL on CentOS 7

30 Декабря 2019 | CentOS

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

Как установить PostgreSQL на CentOS 7

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

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

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

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


Установите PostgreSQL из репозиториев CentOS 

На момент написания этой статьи последняя версия PostgreSQL, доступная в репозиториях CentOS, - это PostgreSQL версии 9.2.23.

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


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

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

    sudo yum install postgresql-server postgresql-contrib
  2. Инициализация базы данных

    Инициализируйте базу данных PostgreSQL с помощью следующей команды:

    sudo postgresql-setup initdb
    Initializing database ... OK
  3. Запуск PostgreSQL

    Чтобы запустить службу PostgreSQL и включить ее при загрузке, просто введите:

    sudo systemctl start postgresqlsudo systemctl enable postgresql
  4. Проверка установки PostgreSQL

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

    sudo -u postgres psql -c "SELECT version();"
    PostgreSQL 9.2.23 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16), 64-bit
    (1 row)

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


Установите PostgreSQL из репозиториев PostgreSQL

На момент написания этой статьи последняя версия PostgreSQL, доступная в официальных репозиториях PostgreSQL, - это версия PostgreSQL 10.4. Прежде чем перейти к следующему шагу, вы должны посетить страницу репозитория PostgreSQL Yum и проверить, доступна ли новая версия.

Для установки последней версии PostgreSQL на ваш сервер CentOS выполните следующие действия:

  1. Включение репозитория PostgreSQL

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

    sudo yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
  2. Установка PostgreSQL

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

    sudo yum install postgresql10-server postgresql10-contrib
  3. Инициализация базы данных

    Для инициализации базы данных PostgreSQL введите:

    sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
    Initializing database ... OK
  4. Запуск PostgreSQL

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

    sudo systemctl start postgresql-10sudo systemctl enable postgresql-10
  5. Проверка установки PostgreSQL

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

    sudo -u postgres /usr/pgsql-10/bin/psql -c "SELECT version();"
    PostgreSQL 10.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit
    (1 row)


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

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

PostgreSQL поддерживает несколько методов аутентификации . Наиболее часто используемые методы:

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

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

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

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


sudo su - postgrespsql


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


\q


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


sudo -u postgres psql


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


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

Только суперпользователи и роли с CREATEROLEпривилегиями могут создавать новые роли.

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

  1. Подключитесь к PostgreSQL Shell

    sudo -u postgres psql

  2. Создать новую роль PostgreSQL

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

    create role john;

  3. Создать новую базу данных PostgreSQL

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

    create database johndb;

  4. Предоставить привилегии

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

    grant all privileges on database johndb to john;


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

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


sudo vim /var/lib/pgsql/data/postgresql.conf

     Если вы используете PostgreSQL версии 10, путь к файлу будет /var/lib/pgsql/10/data/postgresql.conf.

/var/lib/pgsql/data/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

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


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


sudo systemctl restart postgresql

     Если вы используете PostgreSQL версии 10, перезапустите службу PostgreSQL с помощью systemctl restart postgresql-10.

Проверьте изменения с помощью 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 файл.

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


/var/lib/pgsql/data/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 версии 10, полный путь к файлу /var/lib/pgsql/10/data/pg_hba.conf.

Вывод 

Вы узнали, как установить и настроить PostgreSQL на вашем сервере CentOS 7.

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

 

    Комментарии

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

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