Версия от 09:31, 5 августа 2022; Filskiy (обсуждение | вклад) (Новая страница: «При установке PostgreSQL на ОС ''Linux: Debian, Ubuntu, Эльбрус, CentOS'' и ряде других, при запуске сервиса PostgreSQL ''ОС'' может сообщить об отсутствии служебной ''БД''(кластера), по указанному пути. Это означает, что кластер ''БД'' не инициализинован. Для инициализации кластера...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Шаблон:Запуск PostgreSQL в Linux

Материал из Юпитер-8

При установке PostgreSQL на ОС Linux: Debian, Ubuntu, Эльбрус, CentOS и ряде других, при запуске сервиса PostgreSQL ОС может сообщить об отсутствии служебной БД(кластера), по указанному пути. Это означает, что кластер БД не инициализинован. Для инициализации кластера необходимо выполнить следующие команды:
1. Проверить остановлен ли сервис PostgreSQL:
sudo /etc/init.d/postgresql status или
sudo service postgresql status или
sudo systemctl postgresql status

  Вы должны получить ответ системы, о том, что сервис не активен.

2. Инициализация кластера PostgreSQL должна производиться от имени пользователя, который в последствии будет считаться администратором БД. По умолчанию это пользователь - postgres

  Поэтому выполняем команду от имени этого пользователя:
  sudo -u postgres /usr/lib/postgresql/<версия PostgreSQL>/bin/initdb -D /var/lib/postgresql/<версия PostgreSQL>/main или
sudo -u postgres /usr/lib/postgresql/<версия PostgreSQL>/bin/initdb -D /var/lib/postgresql/<версия PostgreSQL>/data
Путь к БД, требуемый по умолчанию можно увидеть в сообщении об ошибке при старте сервиса PostgresSQL. Если есть необходимость в нестандартном месте расположения БД, то него необходимо указать при инициализации кластера.

3. Если используется нестандартное расположение БД, тогда после создания кластера и до запуска сервиса PosqtgreSQL необходимо внести изменения в файл postgresql.conf

data_directory = '<полный путь к БД из строки инициализации>'
hba_file = '<полный путь к файлам конфигурации>/pg_hba.conf'
ident_file = '<полный путь к файлам конфигурации>/pg_ident.conf'
external_pid_file = '/var/run/postgresql/pg-main.pid'

  Файлы конфигурации могут располагаться либо в каталоге /etc/postgresql/<версия postgresql>/main, либо 
  в каталоге, куда сгенерирована БД кластера, например, /var/lib/postgresql/<версия postgresql>/main, либо /var/lib/postgresql/<версия postgresql>/data, либо указанный путь.

4. После внесенных изменений необходимо запустить сервис:
sudo /etc/init.d/postgresql start или
sudo service postgresql start или
sudo systemctl postgresql start

  Проверяем работу postgresql : 

psql -U postgres -h localhost

  Если будет запрос пароля, тогда необходимо ввести пароль от пользователя postgres(по умолчанию - postgres)
  в командной строке сервиса управления БД набрать: \l. При этом получим список баз данных.
  Для выхода нужно набрать: \q.

5. Для проверки автостарта сервиса postgresql необходимо перезагрузить компьютер.

  Проверяем, узнав статус по командам, указанным п п.1.
  Если сервис не активен, тогда надо выполнить команду, позволяющую запускать postgresql при старте ОС
  В Debian и ОС, созданных на его основе: systemctl enable postgresql
  В CentOS и, созданных на основе RedHat: chkconfig postgresql on


В начало статьи