Расположение postgresql.conf и pg_hba.conf на сервере Ubuntu


16

Где находятся файлы postgresql.confи pg_hba.confна сервере Linux с PostgreSQL 8.4, установленным из репозиториев Ubuntu?


4
Проблема в ч / б кресле и клавиатуре. Это зависит от того, как вы его установили. Вы использовали исходный файл tar-gz или использовали утилиту apt. Если вы скачали tar-gzipped файл и установили его. Файл pg_hba.conf еще не существует, пока вы не инициализируете свой каталог данных. Файл INSTALL / Readme содержит эту информацию. Вы найдете файл pg_hba.conf в любом каталоге, который вы выбрали. Во-вторых, если вы использовали утилиту apt, вы должны найти ее в /etc/postgresql/8.4/main, вы также можете выполнить 'find' по имени файла, но выполнение этого на всем диске требует много ресурсов процессора.
Николас Сакич

Перед установкой из исходного кода в место установки по умолчанию вы запускаете следующее: / usr / local / pgsql / bin / initdb -D / usr / local / pgsql / data перед запуском postgres, и в этом каталоге будет создан файл hba.
Николас Сакич

Ответы:


16

Поиск "pg_hba.conf ubuntu" в Google дает вам

https://help.ubuntu.com/community/PostgreSQL

который показывает расположение файлов.

В документации говорится следующее:

Аутентификация клиента контролируется файлом конфигурации, который традиционно называется pg_hba.conf и хранится в каталоге данных кластера базы данных. (HBA означает аутентификацию на основе хоста.) Файл pg_hba.conf по умолчанию устанавливается, когда каталог данных инициализируется initdb. Однако можно разместить файл конфигурации аутентификации в другом месте; см. параметр конфигурации hba_file.

Обратите внимание, что он хранится в каталоге данных кластера базы данных и что его можно разместить в другом месте с помощью параметра конфигурации. Официальная документация не может указать вам конкретную папку, потому что фактическое местоположение зависит как от того, как производитель ОС и администратор машины настроили PostgreSQL. Помните, что PostgreSQL поддерживает множество различных операционных систем (и дистрибутивов Linux).

Как показывает Neutrino , если вы можете получить доступ к вашему серверу через psql, вы можете указать ему, чтобы показать вам местоположение файла.

Также два совета:

  1. locate поможет вам найти файлы, имя которых вы знаете, но не местоположение
  2. Дистрибутивы на основе Debian размещают в / usr / share / doc документацию о том, как они устанавливают различные пакеты по умолчанию, я уверен, что вы найдете в /usr/share/doc/postgresql-8.4 (или, может быть, просто postgresql) информацию о конфигурационные файлы. Очень полезно читать, если они изменили стандартное поведение.

Дайте человеку рыбу ... бла-бла, научите человека ловить рыбу ... и т. Д. Правильный путь - узнать, как Postgres скажет вам, где находится файл. Универсально. show hba_file; в пскл. Смотрите ответ @ нейтрино.
Арно Море

Если и только если вы можете получить доступ к запущенному экземпляру PostgreSQL. Если ваш файл HBA испорчен, вы не сможете. Я связался с ответом Нейтрино.
Винко Врсалович

15

Откройте командную строку.

> psql -U postgres
=# show hba_file;
=# show config_file

Когда они меняют имена настроек конфига, или вы хотите увидеть что-то еще.

=# show all;



2

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

Ваша программа управления пакетами расскажет вам, где находятся файлы, установленные каждым пакетом (например:) dpkg -L postgresql.

Вы также можете заглянуть внутрь скрипта запуска сервиса (обычно /etc/init.d/postgresql)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.