Как запустить postgresql linux centos

Содержание
  1. Установка и запуск PostgreSQL на CentOS
  2. Установка
  3. Запуск
  4. Установка Postgresql на Centos 7
  5. PostgreSQL 9.2
  6. Установка
  7. Настройка
  8. PostgreSQL 11
  9. Установка
  10. Настройка
  11. Как установить PostgreSQL на CentOS 7
  12. How to Install PostgreSQL on CentOS 7
  13. В этом руководстве мы покажем вам два разных способа установки PostgreSQL на вашем компьютере с CentOS 7. Первый способ проведет вас через шаги, необходимые для установки PostgreSQL v9.2.23 из репозиториев CentOS, а второй покажет, как установить последнюю версию PostgreSQL из официальных репозиториев PostgreSQL.
  14. Установите PostgreSQL из репозиториев CentOS
  15. Установите PostgreSQL из репозиториев PostgreSQL
  16. PostgreSQL Роли и методы аутентификации
  17. Создание роли и базы данных PostgreSQL
  18. Включить удаленный доступ к серверу PostgreSQL
  19. Вывод
  20. Установка PostgreSQL на CentOS 8 и его настройка с созданием базы и подключением удаленно
  21. Установка
  22. С помощью репозитория CentOS
  23. Установка из репозитория PostgreSQL
  24. Создание ролей и пользователей
  25. Создание базы и выдача прав на объект
  26. Настройка удаленного подключения к базе
  27. Правила фаерволла
  28. Подключение и возможные проблемы

Установка и запуск PostgreSQL на CentOS

Данная инструкция написана на примере систем CentOS 7 и 8, а также PostgreSQL 9/10 (из коробки) или любой другой версии (настройка репозитория).

Установка

PostgreSQL 9/10

В зависимости от версии операционной системы, из коробки будет установлена версия 9.2 (CentOS 7) или 10 (CentOS 8).

Просто вводим команду:

yum install postgresql-server

PostgreSQL > 9.2

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

yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-`rpm -E %`-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Установка PostgreSQL в CentOS 8 осуществлена через модульные репозитории, что помешает нам — отключаем их командой:

dnf module disable postgresql

После чего обновляем список пакетов:

yum makecache -y

yum install postgresql11-server

* в данном примере будет установлен postgresql версии 11.
** система проверит репозиторий на наличие нужного пакета и задаст запрос на подтверждение установки программы — отвечаем Y.

Запуск

После установки СУБД необходимо:

  1. Инициализировать базу. Это делается с помощью утилиты postgresql-setup с ключом initdb.
  2. Разрешить автозапуск сервиса.
  3. Стартовать службу.

В зависимости от версии postgresql, эти операции выполняются, немного, по-разному.

Источник

Установка Postgresql на Centos 7

В статье рассмотрим установку и первоначальную настройку различных версий сервера PostgreSQL на ОС CentOS 7

PostgreSQL 9.2

Установка

Эта версия входит в стандартные yum репозиториях. Поэтому для установки просто введите команду

Запускаем и добавляем в автозагрузку, заодно и проверим статус что сервер нормально запустился

Если все нормально должны увидеть что postgres запущен.

Настройка

Сейчас в вашей СУБД есть только один пользователь — postgres. Рекомендуется не использовать данного пользователя для работы со своими базами данных, а создавать для каждой базы отдельного пользователя (или несколько при необходимости).
Задаем пароль на пользователя postgres

Подключаемся к серверу postgres

Создаем нового пользователя

Вместо username и password подставьте свои имя пользователя и пароль.

Файлы конфигурации находятся в каталоге /var/lib/pgsql/data, в котором находятся два основных конфигурационных файла.

  • postgresql.conf — основной файл с настройками СУБД
  • pg_hba.conf — файл с настройками доступа для клиентов. В частности, тут можно указать каким пользователям с каких IP-адресов можно подключаться к определенным БД, и требуется ли проверять пароль пользователя, и если требуется — каким методом.

Редактируем файл postgresql.conf.

Для начала разрешим подключение к СУБД из локальной сети (по умолчанию подключение разрешено только с localhost).
Раскомментируем строку

Здесь 10.10.10.1 — ip адрес интерфейса который смотрит в локальную сеть


Теперь разрешим подключение из локальной сети с любых хостов и к любым БД, для этого в конец файла pg_hba.conf добавим:

PostgreSQL 11

Установка

Более свежую версию можно найти на официальном сайте по ссылке https://download.postgresql.org/pub/repos/yum/. На момент написания статьи это 11.2 версия. Добавляем репозиторий.

Запускаем сервер и проверяем что все нормально

Настройка

Первоначальные настройки пользователей и доступа к СУБД аналогичны рассмотренным выше. Только конфигурационные файлы находятся в директории /var/lib/pgsql/11/data/. После внесения изменений не забудьте перезапустить postgres командой

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

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

How to Install PostgreSQL on CentOS 7

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

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

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

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

Читайте также:  Функция windows hello что это

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

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

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

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

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

Инициализация базы данных

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

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

Проверка установки PostgreSQL

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

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

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

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

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

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

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

Инициализация базы данных

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

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

Проверка установки PostgreSQL

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

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

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

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

  • Trust — с помощью этого метода роль может подключаться без пароля, если соблюдены критерии, определенные в pg_hba.conf .
  • Password — роль можно подключить, указав пароль. Пароли могут быть сохранены как 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 утилиты:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вывод

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

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

Источник

Установка PostgreSQL на CentOS 8 и его настройка с созданием базы и подключением удаленно

PostgreSQL — это реляционная база данных, которая распространяется свободно (бесплатная) с открытым исходным кодом. По популярности находится на 4-ом месте. В этой статье будет рассмотрены способы установки базы данных на CentOS 8 или RHEL 8, но и на предыдущих версиях установка будет аналогичной. Мы так же рассмотрим возможность создание первой базы, добавления в нее данных и другие настройки через шелл.

Читайте также:  Linux single mode fsck

Навигация по посту

Установка

Вы можете установить сервер баз данных PostgreSQL из официального репозитория и из репозитория CentOS. Единственное различие в этих двух способах в том, что в официальном репозитории PostgreSQL будет более новая версия.

Сама установка делится на 2 пакета:

  • postgresql-server — сервер базы данных;
  • postgresql-contrib — дополнительные инструменты для работы с базами данных. Например для анализа или администрирования. Не входят в основной пакет, так как считается, что он нужен не всем. Пакет поддерживается теми же разработчиками, что и сервер. Устанавливать не обязательно, но рекомендуется.

С помощью репозитория CentOS

Установка пакетов выполняется следующей командой:

Следующая команда создаст системные базы данных, директории и системные таблицы:

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

Если этот шаг у вас завершился с ошибками, значит что не корректно была выполнена команда initdb. Ошибки могут быть следующими:

  • Failed to start postgresql.service: Unit postgresql.service not found;
  • Failed to enable unit: Unit file postgresql.service does not exist.

О том что сервис включен говорят следующие значения:

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

Вы можете получить следующую ошибку:

  • could not change directory to “/home/user”: Permission denied

Говорит о том, что пользователь ‘postgres’ (который был создан автоматически с сервером PostgreSQL) не имеет прав на указанный каталог для создания файла .psql_history. В рамках примера эта ошибка не критична и может не отображаться вовсе, если вы выполняете команду не из домашнего каталога. Если, в последующем, она у вас так же появится, нужно будет добавить права на исполнение (‘x’) этой директории.

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

Как можно увидеть в примере выше, то из репозитория CentOS была доступна только 10 версия PostgreSQL. Если добавить в вашу ОС ссылку на официальный репозиторий PostgreSQL, то, скорее всего, у нас станет доступна более новая версия. На момент написания статьи, самая последняя актуальная версия PostgreSQL — 12. Вы можете проверить последнюю версию на официальном сайте проекта.

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

Установим сервер базы данных и пакет приложений:

Создадим системные базы и таблицы:

Запустим и включим демон, что бы после перезагрузки он это делал автоматически:

О том что демон включен и работает говорят следующие значения:

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

Создание ролей и пользователей

При установке сервера баз данных автоматически создается пользователь ‘postgres’. Он же и является суперпользователем для баз данных. Общая рекомендация для этого пользователя такая же как и для root — по возможности не работать от него и отсутствие возможности удаленного подключения, но можно использовать и его. Ниже будут рассмотрена возможность создания нового пользователя для удаленного подключения и включения такой возможности для пользователя ‘postgres’.

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

Далее переключимся на пользователя postgres и установим ему пароль «Password123»:

Создание пользователя и роли базы данных

Ранее, PostgreSQL, имела концепцию пользователей и групп. Пользователи входили в группы, а на группы распространялись права. Эта концепция была изменена на роли и теперь, вне зависимости от того что вы хотите создать, вы создаете их. Роль может входить в другую роль и наследовать эти права. Каждая роль так же может быть с правом подключения к серверу «Login» и без него. Если вам будет легче, то вы можете воспринимать роль следующим образом:

  • Пользователь — это роль с правом подключения «Login»;
  • Группа — это роль без права подключения.

Эти роли можно создавать через консоль psql в формате SQL запросов. По умолчанию, если не указывать для psql пользователя, сверяется локальный с тем, что есть в базах. Как уже говорилось — единственным созданным пользователем является posgres. Подключимся через него:

Для создания роли есть две команды, где ‘CREATE ROLE’ создает только роль, а ‘CREATE USER’ — создает роль с правом входа ‘LOGIN’. В примере ниже два одинаковых примера создающие пользователя ‘TDB_admin’ с правом входа:

Что бы увидеть созданные роли — выполните следующую команду:

Как можно увидеть — у пользователя postgres есть поле атрибутов, которое определяет его права. Сами же атрибуты тоже являются наборами прав. Выделю 3 типа атрибутов, которые в основном используются:

  • Superuser — все возможные права;
  • Create role — создание ролей (без прав superuser);
  • Create DB — создание баз.
Читайте также:  Как устанавливается alt linux

Так как роль, которая создала объект, может распоряжаться им полностью — дадим такое право созданному пользователю. Отмечу, что название атрибутов пишутся без пробелов:

Зададим пароль ‘Password123’ созданному пользователю:

Все указанные выше команды можно поместить в одну:

Для выхода из консоли вы можете использовать следующую команду:

Отмечу, что следующая команда подключается к консоли psql под новым пользователем и паролем, но с ошибкой указывающей на неверный метод аутентификации. Рассмотрение методов аутентификаций и подключения будет показано ниже.

  • psql: error: could not connect to server: FATAL: Peer authentication failed for user

Создание базы и выдача прав на объект

Если мы создадим базу под пользователем ‘postgres’, то он станет ее владельцем, а пользователь ‘TDB_admin’ не будет иметь на нее прав. Это можно исправить.

Следующей командой мы сменим существующего владельца на ‘TDB_admin’.

Следующей командой мы увидим список всех баз и их владельцев:

Выйти из консоли можно использовав:

Настройка удаленного подключения к базе

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

  • Trust — можно подключаться без использования пароля;
  • Password — подключение только используя пароль;
  • Ident — возможность удаленного подключение с именем и паролем;
  • Peer — только локальное подключение.

По умолчанию все пользователи создаются с типом аутентификации ‘Peer’. Что бы это изменить нужно редактировать файл ‘pg_hba.conf’. Для 12-ой версии postgresql этот файл находится по пути:

Для 10-ой версии, установленной из репозитория CentOS путь следующий:

Там же находится файл ‘postgresql.conf’, который указывает с каких адресов и на какие порты принимать подключения.

Откроем файл ‘postgresql.conf’ и отредактируем его:

  1. Снять комментарий со строки 59, которая указывает с какого IP адреса принимать подключения. В качестве адреса заменить localhost на знак ‘*’, говорящий что подключения можно принимать с любого адреса;
  2. Снять комментарий со строки 63, указывающий какой порт нужно слушать.

Теперь нам нужно отредактировать файл ‘pg_hba.conf’ написав строчку аналогично выделенной:

На примере выше я добавил 78 и 79 строчку, которая строится по следующему характеру:

  • type — указывает на источник подключения, будет ли он локальный, удаленный или зашифрованный. Принимает значения: host, local, hostssl и hostnossl. Я использовал запись host (78), которая говорит что к базе будут подключаться по TCP/IP с отсутствием или использованием SSL. Запись ‘local’ — говорит, что пользователь будет подключаться локально (используя сокет);
  • database — можно указать название базы, к которому разрешено подключение. Можно так же указать ‘all’, что не ограничит доступ к базам;
  • user — аналогично базам мы можем указать пользователя, который будет подключаться. Можно указать ‘all’;
  • address — адрес с которого вы планируете подключаться. В качестве любого IP адреса можно указать ‘0.0.0.0/0’. Нужно указывать маску. Маска типа /32 говорит об одном IP адресе. Маска /24 будет говорить об 254 адресах. Для типа соединения local — адрес указывать не нужно;
  • method — тип аутентификации, который был описан выше. В описанном случае используется парольная аутентификация по хэш сумме. В этом поле может быть так же reject, который запрещает соединения.

Далее сохраняем файл и перезагружаем сервис:

Правила фаерволла

Если у вас не получится подсоединиться к базе, вы можете попробовать прописать правила в фаерволле. Пример ниже разрешает подключения с IP адреса указанном у меня в файле ‘pg_hba.conf’. Вам нужно будет поменять на свой. PostgreSQL принимает подключения по 5432 порту:

Подключение и возможные проблемы

Подключится мы можем используя клиент psql, IDE, модули и т.д. В случае psql, для типа аутентификации MD5, подойдет такая команда:

  • -h — указывает на хост к которому я подключаюсь. Если вы делаете это локально, то указывать не нужно;
  • -U — имя пользователя под которым выполняется подключение;
  • template1 — это база данных к которой нужно подключиться;
  • -W — запрашивает пароль.

При возникновении проблем с подключениями я бы рекомендовал изменить файл ‘pg_hba.conf’ что бы он содержал запись следующего характера:

Подключение типа trust снижает требования к типу аутентификации не требуя пароль. Вы так же можете подключаться используя роль postgres исключив возможную проблему с правами. Роль так же должна быть с правом ‘LOGIN’, о чем писалось выше.

Если проблема не решается — попробуйте перенести ваши записи в файле ‘pg_hba.conf’ на самый верх.

Так же отмечу, что при подключениях с некоторых IDE (JetBrains), без указания базы, появлялась ошибка. В качестве баз данных вы можете указать ‘template1’ или ‘postgres’, которые относятся к системным.

Источник

Оцените статью