Ubicación de postgresql.conf y pg_hba.conf en un servidor Ubuntu

16

¿Dónde están los archivos postgresql.confy pg_hba.confen un servidor Linux que ejecuta PostgreSQL 8.4 instalado desde los repositorios de Ubuntu?

Oleksandr
fuente
44
El problema es en blanco y negro la silla y el teclado. Depende de cómo lo instaló. ¿Utilizó el archivo fuente tar-gz o utilizó la utilidad apt. Si descargas el archivo tar-gzipped y lo instalaste. El archivo pg_hba.conf aún no existe a menos que inicialice su directorio de datos. El archivo INSTALL / Readme tiene esa información. Encontrará el archivo pg_hba.conf en lo que haya seleccionado como su directorio de datos. En segundo lugar, si usó la utilidad apt, entonces debería encontrarla en /etc/postgresql/8.4/main, también puede hacer una 'búsqueda' en el nombre del archivo, pero hacerlo en todo el disco consume mucha CPU.
Nikolas Sakic
Instalando desde la fuente a la ubicación de instalación predeterminada, ejecuta lo siguiente: / usr / local / pgsql / bin / initdb -D / usr / local / pgsql / data antes de iniciar postgres y el archivo hba se creará en ese directorio.
Nikolas Sakic

Respuestas:

16

Buscar "pg_hba.conf ubuntu" en Google te da

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

que muestra la ubicación de los archivos.

La documentación establece lo siguiente:

La autenticación del cliente se controla mediante un archivo de configuración, que tradicionalmente se denomina pg_hba.conf y se almacena en el directorio de datos del clúster de la base de datos. (HBA significa autenticación basada en host). Un archivo pg_hba.conf predeterminado se instala cuando initdb inicializa el directorio de datos. Sin embargo, es posible colocar el archivo de configuración de autenticación en otro lugar; vea el parámetro de configuración hba_file.

Tenga en cuenta que dice almacenado en el directorio de datos del clúster de la base de datos y que es posible colocarlo en otro lugar, a través de un parámetro de configuración. La documentación oficial no puede indicarle una carpeta específica porque la ubicación real depende de cómo el fabricante del sistema operativo y el administrador de la máquina hayan configurado PostgreSQL. Recuerde PostgreSQL es compatible con muchos sistemas operativos diferentes (y distribuciones de Linux).

Como muestra Neutrino , si puede acceder a su servidor a través de psql, puede indicarle que le muestre la ubicación del archivo.

Además, dos consejos:

  1. localizar le ayudará a encontrar archivos que conoce el nombre pero no la ubicación
  2. Las distribuciones basadas en Debian se encuentran en la documentación / usr / share / doc sobre cómo configuran los diferentes paquetes de forma predeterminada, estoy seguro de que encontrará en /usr/share/doc/postgresql-8.4 (o tal vez solo postgresql) información sobre Archivos de configuración. Muy útil para leer en caso de que hayan modificado algún comportamiento estándar.
Vinko Vrsalovic
fuente
Dale un pescado a un hombre ... bla, bla, enséñale a pescar ... etc. La forma correcta es saber cómo los postgres te dicen dónde está el archivo. Universalmente show hba_file; en psql. Ver la respuesta de @neutrino.
Arnaud Meuret
Si y solo si puede acceder a su instancia de PostgreSQL en ejecución. Si su archivo HBA está en mal estado, es posible que no pueda hacerlo. Me he vinculado a la respuesta de Neutrino.
Vinko Vrsalovic
15

Abra un símbolo del sistema.

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

Cuando cambian los nombres de las configuraciones, o quieres ver algo más.

=# show all;
Neutrino
fuente
3

Posiblemente

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

Como dijo Vinko, la ubicación depende de la distribución. Para agregar a su respuesta:

El software de administración de paquetes le dirá dónde están los archivos instalados por cada paquete (por ejemplo:) dpkg -L postgresql.

También puede mirar dentro del script de inicio del servicio (normalmente /etc/init.d/postgresql)

leonbloy
fuente