Localização de postgresql.conf e pg_hba.conf em um servidor Ubuntu

16

Onde estão os arquivos postgresql.confe pg_hba.confem um servidor Linux executando o PostgreSQL 8.4 instalado a partir dos repositórios do Ubuntu?

Oleksandr
fonte
4
O problema está na cadeira e no teclado. Depende de como você o instalou. Você usou o arquivo tar-gz de origem ou o utilitário apt. Se você baixar o arquivo tar-gzipped e instalá-lo. O arquivo pg_hba.conf ainda não existe, a menos que você inicialize seu diretório de dados. O arquivo INSTALL / Readme possui essas informações. Você encontrará o arquivo pg_hba.conf no que você selecionar como seu diretório de dados. Em segundo lugar, se você usou o utilitário apt, deve encontrá-lo em /etc/postgresql/8.4/main e também pode 'localizar' o nome do arquivo, mas fazer isso em todo o disco consome a CPU.
Nikolas Sakic
Instalando da origem para o local de instalação padrão, execute o seguinte: / usr / local / pgsql / bin / initdb -D / usr / local / pgsql / data antes de iniciar o postgres e o arquivo hba será criado nesse diretório.
Nikolas Sakic

Respostas:

16

Procurando por "pg_hba.conf ubuntu" no Google, você fornece

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

que mostra a localização dos arquivos.

A documentação declara o seguinte:

A autenticação do cliente é controlada por um arquivo de configuração, que tradicionalmente se chama pg_hba.conf e é armazenado no diretório de dados do cluster do banco de dados. (HBA significa autenticação baseada em host.) Um arquivo pg_hba.conf padrão é instalado quando o diretório de dados é inicializado pelo initdb. É possível colocar o arquivo de configuração de autenticação em outro local; consulte o parâmetro de configuração hba_file.

Observe que diz armazenado no diretório de dados do cluster de banco de dados e que é possível colocá-lo em outro lugar, por meio de um parâmetro de configuração. A documentação oficial não pode indicar uma pasta específica, porque a localização real depende de como o fabricante do SO e o administrador da máquina configuraram o PostgreSQL. Lembre-se de que o PostgreSQL suporta muitos sistemas operacionais diferentes (e distribuições Linux).

Como mostra Neutrino , se você pode acessar seu servidor via psql, pode pedir para mostrar a localização do arquivo.

Além disso, duas dicas:

  1. localize ajudará a encontrar arquivos que você conhece o nome, mas não o local
  2. As distribuições baseadas no Debian colocam em / usr / share / doc documentação sobre como eles configuram pacotes diferentes por padrão. Tenho certeza que você encontrará em /usr/share/doc/postgresql-8.4 (ou talvez apenas postgresql) informações sobre o arquivos de configuração. Muito útil para ler, caso eles tenham modificado algum comportamento padrão.
Vinko Vrsalovic
fonte
Dê a um homem um peixe ... blá blá, ensine um homem a pescar ... etc. O caminho certo é saber como o postgres lhe diz onde está o arquivo. Universalmente. show hba_file; no psql. Veja a resposta de @ neutrino.
Arnaud Meuret 17/07/19
Se e somente se você puder acessar sua instância do PostgreSQL em execução. Se o seu arquivo HBA estiver bagunçado, talvez você não consiga. Eu tenho um link para a resposta de Neutrino.
Vinko Vrsalovic 18/07/19
15

Abra um prompt de comando.

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

Quando eles alteram os nomes das configurações, ou você deseja ver outra coisa.

=# show all;
Neutrino
fonte
3

Possivelmente

/etc/postgresql/9.*/main
kmonsoor
fonte
2

Como Vinko disse, o local depende da distribuição. Para adicionar à sua resposta:

O software de gerenciamento de pacotes informa onde estão os arquivos instalados por cada pacote (por exemplo dpkg -L postgresql:).

Você também pode procurar dentro do script de inicialização do serviço (normalmente /etc/init.d/postgresql)

leonbloy
fonte