Содержание

Пользователь postgres, пользователь который будет регистрировать запись postgres в среде BASH должен быть членом группы whell, группа whell должна иметь доступ к командам sudo:

# visudo
WHEEL_USERS ALL=(ALL) ALL
:wq

листинг инициализации кластера postgresql

$ sudo su - postgres -s /bin/bash 
-bash-3.2$ initdb -k
Файлы, относящиеся к этой СУБД, будут принадлежать пользователю "postgres". От его имени также будет запускаться процесс сервера. Кластер баз данных будет инициализирован с локалью "ru_RU.UTF-8". Кодировка БД по умолчанию, выбранная в соответствии с настройками: "UTF8". Выбрана конфигурация текстового поиска по умолчанию "russian". Контроль целостности страниц данных включён. исправление прав для существующего каталога /var/lib/pgsql/data... ок создание подкаталогов... ок выбирается значение max_connections... 100 выбирается значение shared_buffers... 128MB выбор реализации динамической разделяемой памяти... posix создание конфигурационных файлов... ок выполняется подготовительный скрипт... ок выполняется заключительная инициализация... ок сохранение данных на диске... ок ПРЕДУПРЕЖДЕНИЕ: используется проверка подлинности "trust" для локальных подключений. Другой метод можно выбрать, отредактировав pg_hba.conf или используя ключи -A, --auth-local или --auth-host при следующем выполнении initdb. Success. You can now start the database server using:    service postgresql start or    pg_ctl -D /var/lib/pgsql/data -l файл_журнала start

включаем службу юнита postgresql в автозагрузку

# systemctl enable postgresql
//для SysV
# chkconfig postgresql on

для управления кластером postgresql из сеанса пользователя postgres  предназначена утилитой pg_ctl

-bash-3.2$ pg_ctl start | stop | restart| reload| status
-bash-3.2$ pg_ctl start
ожидание запуска сервера....2019-06-11 12:47:34.816 MSK [1337] СООБЩЕНИЕ: для приёма подключений по адресу IPv4 "0.0.0.0" открыт порт 5432
2019-06-11 12:47:34.816 MSK [1337] СООБЩЕНИЕ: для приёма подключений по адресу IPv6 "::" открыт порт 5432
2019-06-11 12:47:34.821 MSK [1337] СООБЩЕНИЕ: для приёма подключений открыт Unix-сокет "/tmp/.s.PGSQL.5432"
2019-06-11 12:47:34.846 MSK [1337] СООБЩЕНИЕ: передача вывода в протокол процессу сбора протоколов
2019-06-11 12:47:34.846 MSK [1337] ПОДСКАЗКА: В дальнейшем протоколы будут выводиться в каталог "log".
готово
сервер запущен

При запуске postgresql  может возникнуть сообщение см. следующий листинг, это нормально, стартовый PID автозагрузки  запустил кластер postgresq все команды pg_ctl , кроме start доступны

-bash-3.2$ pg_ctl start 
pg_ctl: возможно, уже работает другой сервер; всё же пробуем запустить этот сервер
ожидание запуска сервера....ВАЖНО: файл блокировки "postmaster.pid" уже существует
ПОДСКАЗКА: Другой экземпляр postmaster (PID 1118) работает с каталогом данных "/var/lib/pgsql/data"?
прекращение ожидания
pg_ctl: не удалось запустить сервер

 Включаем журнал работы сервера postgresql, по умолчанию отключен, с помощью клиента psql создаём SQL запрос и вносим изменения в файл postgresql.conf, теперь в структуре каталога   /var/lib/pgsq/data  создаётся дополнительная папка log, для файлов журналов.

 -bash-3.2$ psql 
postgres=# \! sed "s/.*logging_collector =.*/logging_collector = 'on'/" -i /var/lib/pgsql/data/postgresql.conf

перегружаем сервер для перечитывания новых значений postgresql

-bash-3.2$ pg_ctl restart

 Настраиваем параметр listen_addresses - позволяет клиентам подключатся по протоколу TCP/IP, к базам данных pgsql, по умолчанию указанно значение, localhost - только для локальных подключений к серверу postgresql через unix-domain socket, вероятно это значение можно оставить без изменений, при условии, что сервер postgresql и приложения, например Vibe или Zabbix работают на том же сервере где и pgsql , мы же рассмотрим вариант где требуется доступ к БД  postgresql  из сетей разных диапазонов.

//параметр listen_addresses из коробки   
-bash-3.2$ psql
postgres=# SHOW listen_addresses;
listen_addresses
------------------
localhost
(1 строка)
\q

меняем значение параметра listen_addresses с localhot на  *,  подключение к серверу postgresql  со всех сетей по TCP/IP при желание параметр  *  можно сузить до нужного диапазона сети

-bash-3.2$ psql 
postgres=# \! sed "s/.*listen_addresses =.*/listen_addresses = '*'/" -i /var/lib/pgsql/data/postgresql.conf
\q

перегружаем сервер для перечитывания новых значений postgresql

-bash-3.2$ pg_ctl restart



смотрим фиксацию значение listen_addresses

-bash-3.2$ psql 
postgres=# SHOW listen_addresses;
listen_addresses
------------------
*
(1 row)
\q