Меню Рубрики

Установка postgresql сервера на centos

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

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

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

Необходимые компоненты

Чтобы иметь возможность устанавливать пакеты, вам необходимо войти в систему как пользователь root или пользователь с правами sudo.

Установка PostgreSQL на CentOS 8

На момент написания этой статьи существует две версии сервера PostgreSQL, доступные для установки из стандартных репозиториев CentOS: версии 9.6 и 10.0.

Чтобы вывести список доступных потоков модуля PostgreSQL, введите:

Выходные данные показывают, что модуль postgresql доступен с двумя потоками. Каждый поток имеет два профиля: сервер и клиент. По умолчанию используется поток 10 с профильным сервером:

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

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

Запустите службу PostgreSQL и включите ее для запуска при загрузке:

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

Роли и методы аутентификации 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пользователя, сначала переключитесь на пользователя, а затем откройте приглашение PostgreSQL с помощью утилиты psql:

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

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

Читайте также:  Установка замок врезной palladium

Обычно пользователь postgres используется только из localhost.

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

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

В следующем примере мы создадим новую роль с именем andreyex, базу данных с именем andreyexdb и предоставим права доступа к базе данных.

    Во-первых, подключитесь к оболочке PostgreSQL:

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

По умолчанию сервер PostgreSQL прослушивает только локальный интерфейс 127.0.0.1.

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

Прокрутите вниз до раздела CONNECTIONS AND AUTHENTICATION и добавьте/отредактируйте следующую строку:

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

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

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

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

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

Вывод

CentOS 8 предоставляет две версии PostgreSQL: 9.6 и 10.0.

Для получения дополнительной информации по этому вопросу посетите документацию PostgreSQL (https://www.postgresql.org/docs/10.0/static/index.html).

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

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

источник

Установка PostgreSQL CentOS 7

Postgresql — это объектно-реляционная база данных с высокой степенью масштабируемости и SQL совместимым синтаксисом и открытым исходным кодом. Она разрабатывается в калифорнийском университете Беркли. В последнее время PostgreSQL, благодаря своим преимуществам набирает большую популярность наряду с везде используемой mysql.

Вы можете узнать чем отличаются mysql и postgresql в отдельной статье, а сегодня мы рассмотрим как установить Postgresql CentOS 7, а также как выполнить минимальную настройку базы данных для подготовки ее к использованию.

Установка Postgresql CentOS

Самый первый шаг заключается в установке программы в вашу систему. Как я уже говорил, база данных довольно популярна, поэтому она есть в официальных репозиториях. Но если вы хотите получить самую свежую версию, то нужно добавить официальный репозиторий:

sudo rpm -Uvh http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm

В CentOS 6 команда будет выглядеть вот так:

sudo rpm -Uvh http://yum.postgresql.org/9.5/redhat/rhel-6-x86_64/pgdg-redhat95-9.5-2.noarch.rpm

После того как репозиторий будет добавлен к вашей системе вы можете перейти к установке программы. На данный момент последняя версия Postgresql 9.6. Именно для нее мы добавили репозиторий. Возможно, для более новых версий вам придется посетить сайт и посмотреть не появилась ли новая версия. Установка Postgresql CentOS 7 версии 9.6 выполняется командой:

sudo yum install postgresql96-server postgresql96

Сразу после установки Postgresql сервер еще не готов к использованию, нужно инициализировать необходимые базы данных. Для этого выполните:

Команде потребуется некоторое время для начальной инициализации. После ее завершения в переменной PGDATA будет сохранен путь к папке с базами данных. В моем случае это /var/lib/pgsql/9.5/data/.

Дальше запускаем сервер баз данных и добавляем его в автозагрузку:

sudo systemctl start postgresql-9.6
$ sudo systemctl enable postgresql-9.6

Настройка Postgresql CentOS 7

Теперь сервер баз данных Postgresql установлен и запущен. Нам осталось проверить как все работает, настроить пользователей и свою первую базу данных. Настройка Postgresql CentOS 7 изначально выполняется только от пользователя postgres поэтому переключаемся на этого пользователя с помощью команды su:

Команда выполняется от имени администратора, потому что иначе у вас спросят пароль, а вы его не знаете. Для доступа к консоли Postgresql будем применять команду psql:

Смотрим информацию о подключении:

Первое что здесь можно сделать, это создать пароль для postgres:

Дальше закройте оболочку командой:

Пользователь postgres — это аналог суперпользователя для Postgresql. Но не всегда безопасно использовать вход от имени суперпользователя. Нам нужно создать обычного пользователя, который может только управлять базами данных. Для этого выполните в консоли от имени postgres:

Дальше нужно ввести имя роли и ответить на несколько вопросов, а также повторить процедуру задания пароля как для postgres. Чтобы вы могли использовать postgresql через терминал от имени этого пользователя добавьте пользователя UNIX:

Нам осталось только создать новую базу данных:

Теперь у вас есть все необходимое для полноценной работы с программой.

Установка Phppgadmin CentOS 7

Не очень удобно работать с консольным интерфейсом управления базами данных. Иногда нужно просто и быстро добавить базу данных или создать пользователя. Для этого можно использовать веб-интерфейс phppgadmin. Для установки программы выполните:

sudo yum install phpPgAdmin

Также нужно, чтобы на вашей машине был установлен и запущен веб-сервер Apache. Чтобы перезапустить Apache выполните:

Читайте также:  Установка пламегасителя на тигр

sudo systemctl restart httpd

После завершения установки вы сможете открыть адрес phpPgAdmin в браузере. Только обратите внимание на регистр букв, его нужно сохранять как при установке пакета, так и в браузере:

Выводы

В этой статье мы рассмотрели как выполняется установка Postgresql CentOS 7. Как видите, здесь нет ничего очень сложного. Postgresql имеет некоторые особенности, например, авторизация пользователя в системе для управления базой данных. Если у вас остались вопросы, спрашивайте в комментариях!

На завершение видео о про преимущества Postgresql:

источник

Установка и настройка PostgreSQL в CentOS

В данной статье мы проведем установку СУБД PostgreSQL 11 в Linux CentOS 7, выполним базовую настройку сервера и СУБД, рассмотрим основные параметры конфигурационного файла, а так же способы тюнинга производительности. PostgreSQL – популярная свободная объектно-реляционная система управления базами данных. Не смотря на то, что она не так распространена как MySQL/MariDB, она является самой профессиональной.

Сильные стороны PostgreSQL:

  • Полное соответствие стандартам SQL;
  • Высокая производительность за счет управления многовариантным параллелизмом (MVCC);
  • Масштабируемость (широко используется в высоконагруженных средах);
  • Поддержка множества языков программирования;
  • Надёжные механизмы транзакций и репликации;
  • Поддержка данных в формате JSON.

Установка PostgreSQL в CentOS/RHEL

Хотя PostgreSQL можно установить из базового репозитория CentOS, мы выполним установку репозитория от разработчиков, так как в нем всегда присутствует актуальная версия пакета.

Первым шагом устанавливаем репозиторий PosgreSQL (на данный момент он устанавливается следующим образом):

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

В данном репозитории есть как самые новые версии PostgreSQL, так и более старые версии. Информация о репозитории выглядит следующим образом:

Установим последнюю доступную версию версию (PostrgeSQL 11) c помощью yum.

yum install postgresql11-server -y

В процессе установки устаналивается сам сервере PostgreSQL и необходимые библотеки:

После установки пакетов, нужно произвести инициализацию базы данных:

Так же сразу добавим сервер БД в автозагрузку и запустим его:

systemctl enable postgresql-11

systemctl start postgresql-11

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

]# systemctl status postgresql-11

Если вам нужен доступ к PostgreSQL снаружи, вам нужно открыть порт TCP/5432, в стандартном firewall в Centos 7:

# firewall-cmd —zone=public —add-port=5432/tcp —permanent
# firewall-cmd —reload

#iptables-A INPUT -m state —state NEW -m tcp -p tcp —dport 5432 -j ACCEPT

Если включен SELinux, выполните:

setsebool -P httpd_can_network_connect_db 1

Подключение к PostgreSQL, создание БД, пользователя

По умолчанию при установке PostgreSQL в системе есть один пользователь —postgres.

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

Чтобы подключиться к серверу postgres нужно ввести команду:

[root@server /]# sudo -u postgres psql

Открылась консоль PostgreSQL. Покажем несколько простых примеров управления PostgreSQL из консоли psql.

Т.к. любой пользователь системы может авторизоваться в postrgesql, сначала нужно изменить пароль пользователя postgres.

ALTER ROLE postgres WITH PASSWORD ‘super_str0ng_pa$$word’;

Сразу создадим новую базу данных, пользователя и дадим ему полные права на эту БД:

postgres=# CREATE DATABASE mydbtest;

postgres=# CREATE USER mydbuser WITH password ‘123456789’;

postgres=# GRANT ALL PRIVILEGES ON DATABASE mydbtest TO mydbuser;

Вывести список запросов к базе:

postgres=# select * from pg_stat_activity where datname=’dbname’

Сбросить все подключения к базе:

postgres=# select pg_terminate_backend(p

Информацию о текущей сессии можно получить так:

Для завершения работой с консолью psql, выполните:

Как вы уже заметили, синтаксис не отличается от той же MariaDB или MySQL и поэтому особо останавливаться на однотипных командах мы не будем.

Отметим, что для более удобного управления базами PostgreSQL из веб-интерфейса рекомендуется использовать pgAdmin4 (написан на Python и Javascript/jQuery). Это аналог привычному многим веб разработчикам PhpMyAdmin.

Основные параметры конфигурационных файлов PostgreSQL

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

  • postgresql.conf — непосредственно сам файл конфигурации postgresql;
  • pg_hba.conf — файл с настройками доступа. В данном файле, можно выставлять различные ограничения для пользователей, устанавливать политику подключения к БД;
  • pg_ident.conf — этот файл используется при идентификации клиентов по протоколу ident.

Чтобы запретить локальным пользователям вход в postgres без авторизации, в файле pg_hba.conf укажите:

Рассмотрим наиболее важные параметры в конфигурационном файле postgresql.conf:

  • listen_addresses — указывает на каких IP адресах сервер будет принимать клиентские подключения. По умолчанию указано localhost, это означает, что возможно только локальное подключение. Чтобы случашать на всех IPv4 интерфейсах, укажите 0.0.0.0
  • max_connections – как и в других СУБД, это максимальное количество одновременных подключения к серверу БД;
  • temp_buffers – максимальный размер временных буферов;
  • shared_buffers — объем разделяемой памяти используемый сервером баз данных. Обычно выставляется в размере 25% от памяти, установленной на сервере;
  • effective_cache_size – параметр, который помогает планировщику postgres определить количество доступной памяти для кеширования на диск. Обычно параметр выставляется размером в 50-75% от всей ОЗУ на сервере;
  • work_mem – объем памяти, который будет использоваться внутренними операциями сортировки СУБД — ORDER BY, DISTINCT и слияния;
  • maintenance_work_mem – объем памяти, который будет использоваться внутренними операциями — VACUUM, CREATE INDEX и ALTER TABLE ADD FOREIGN KEY;
  • fsync – если этот параметр включен, то СУБД будет дожидаться физической записи данных на жесткий диск. При включенном fsynс вам будет проще восстановить БД после системного или аппаратного сбоя. Естественно, что включение данного параметра значительно снижает производительность СУБД, но повышает надежность хранения. При отключении этого параметра стоит отключать и full_page_writes;
  • max_stack_depth — максимальный размер стека (2 Мб по умолчанию);
  • max_fsm_pages — с помощью данного параметра, можно управлять свободным дисковым пространством на сервере. К примеру, после удаления данных из таблицы, занимаемое ранее место не освобождается на диске, а помечается на карте свободного пространства с меткой «свободно» и далее используется для новых записей в таблице. Если на сервере активно ведется запись/удаление данных в таблицах, увеличение данного параметра, положительно повлияет на производительность;
  • wal_buffers – объем из разделяемой памяти (shared_buffers), который используется для хранения данных WAL;
  • wal_writer_delay – время между периодами записи WAL на диск;
  • commit_delay — задержка между записью транзакции в буфер WAL и сбросом его на диск;
  • synchronous_commit — параметр определяет, что результат об успешном завершении транзакции будет отправлен тогда, когда данные WAL физически запишутся на диск.
Читайте также:  Установка автосигнализации mongoose 600

Резевное копирование и восстановление БД в PostgreSQL

Создать резервную копию в PostgreSQL БД можно несколькими способами. Рассмотрим самый простой вариант.

Для начала проверим, какие БД запущены на сервере:

У нас имеются 4 базы данных, 3 из которых системные (postgres и template).

Ранее мы создавали БД с именем “mydbtest”, на ее примере и выполним резервное копирование.

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

sudo -u postgres pg_dump mydbtest > /root/dupm.sql — выполняем запрос от пользователя postgres, указываем нужную БД и путь до файла в который нужно сохранить дамп базы. Дамп базы может забрать ваша система резевного копирования, или в случае использования веб сервера, вы можете отправить его в ваше облачное хранилище.

Чтобы восстановить указанный дамп в нужную БД, можно воспользоваться утилитой psql:

sudo -u postgres psql mydbtest

Так же можно создать бэкап в специальном формате дампа и сжатом с применением gzip:

sudo -u postgres pg_dump -Fc mydbtest > /root/dumptest.sql

Восстанавливается такой дамп с помощью утилиты pg_restore:

sudo -u postgres pg_restore -d mydbtest /root/dumptest.sql

Более расширенные настройки можно посмотреть в справке по данным утилитам:

man psql
man pg_dump
man pg_restore

Оптимизация и тюниг PostgreSQL

В предыдущей статье о MariaDB, мы показывали, как можно привести практически к идеалу параметры конфигурационного файла my.cnf с помощью тюнеров. Для PostgreSQL существует, хотя правильнее сказать существовала такая утилита как PgTun, но к сожалению она уже давно не обновляется. В тоже время есть масса онлайн сервисов, с помощью которых вы можете настроить оптимальную конфигурацию для вашего PostgreSQL. Мне нравится сервис pgtune.leopard.in.ua.

Интерфейс очень прост. Вам нужно указать параметры вашего сервера (профиль, процессоры, память, тип дисков) и нажать кнопку “Generate”. В результате вам будет предложен вариант конфигурационного файла postgresql.conf с рекомендуемыми значениями основных параметров СУБД.

Например, для VPS SSD сервера с 2 Гб оперативной памятью, 2 CPU для запуска нескольких сайтов рекомендуются следующие настройки в postgresql.conf:

И это на самом деле не единственный ресурс, на момент написания статьи, были достпны аналогичные сервисы:

  • Cybertec PostgreSQL Configurator
  • PostgreSQL Configuration Tool

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

источник

Добавить комментарий

Adblock
detector