Из http://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html говорится:

Файл pg_hba.conf по умолчанию устанавливается, когда каталог данных инициализируется initdb.

Я предполагаю, что когда я запускаю initdb , он сгенерирует файл в /var/lib/pgsql/9.1/data/pg_hba.conf . Тем не менее, он также создает файл в /var/lib/pgsql/pg_hba.conf .

  1. Может кто-нибудь объяснить, как я получаю два файла pg_hba.conf с разным контентом?

  2. Какой из них в конечном итоге будет использован?

1 ответ1

0

Наконец-то я разобрался с проблемой:

Я использовал Vagrant для создания виртуальной машины и Puppet для установки postgresql-9.1. У puppet есть модуль postgresql-service, который состоит из двух частей, имеющих отношение к этому вопросу:

  1. initdb, который по сути работает:

    /sbin/service postgresql-9.1 initdb
    

    Результатом этой команды является создание каталога:

    /var/lib/pgsql/9.1/data
    

    Внутри этого каталога есть файл по умолчанию pg_hba.conf

  2. Переопределите pg_hba.conf по умолчанию с помощью нашего customized pg_hba.conf

    Проблема, с которой я столкнулся, заключалась в том, что я вывел настроенный файл customized pg_hba.conf в /var/lib/pgsql вместо /var/lib/pgsql/9.1/data .

Надеюсь, что ответ поможет другим людям избежать подобных проблем.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .