Posizione di postgresql.conf e pg_hba.conf su un server Ubuntu


16

Dove sono i file postgresql.confe pg_hba.confsu un server Linux che esegue PostgreSQL 8.4 installato dai repository di Ubuntu?


4
Il problema è con la sedia e la tastiera. Dipende da come è stato installato. Hai usato il file sorgente tar-gz o hai usato l'utilità apt. Se scarichi il file tar-gzipped e lo installi. Il file pg_hba.conf non esiste ancora a meno che non si inizializzi la directory dei dati. Il file INSTALL / Readme contiene tali informazioni. Troverai il file pg_hba.conf in qualunque cosa tu abbia selezionato come directory di dati. In secondo luogo, se hai usato l'utilità apt allora dovresti trovarlo in /etc/postgresql/8.4/main puoi anche fare una 'ricerca' sul nome del file, ma farlo su tutto il disco sta consumando cpu.
— Nikolas Sakic,

L'installazione dall'origine al percorso di installazione predefinito, si esegue quanto segue: / usr / local / pgsql / bin / initdb -D / usr / local / pgsql / data prima di avviare postgres e il file hba verrà creato in quella directory.
— Nikolas Sakic,

Risposte:


16

Alla ricerca di "pg_hba.conf ubuntu" su Google ti dà

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

che mostra la posizione dei file.

La documentazione afferma quanto segue:

L'autenticazione client è controllata da un file di configurazione, che tradizionalmente si chiama pg_hba.conf ed è archiviato nella directory dei dati del cluster di database. (HBA sta per autenticazione basata su host.) Un file pg_hba.conf predefinito viene installato quando la directory di dati viene inizializzata da initdb. Tuttavia, è possibile posizionare altrove il file di configurazione dell'autenticazione; vedere il parametro di configurazione hba_file.

Nota che dice memorizzato nella directory dei dati del cluster di database e che è possibile posizionarlo altrove, tramite un parametro di configurazione. La documentazione ufficiale non può indirizzare a una cartella specifica perché la posizione effettiva dipende sia da come PostgreSQL sia dal produttore del sistema operativo e dall'amministratore della macchina. Ricorda che PostgreSQL supporta molti sistemi operativi diversi (e distribuzioni Linux).

Come mostra Neutrino , se puoi accedere al tuo server tramite psql, puoi dirlo per mostrarti la posizione del file.

Inoltre, due suggerimenti:

  1. individuare ti aiuterà a trovare file di cui conosci il nome ma non la posizione
  2. Le distribuzioni basate su Debian mettono sotto / usr / share / doc la documentazione su come hanno impostato pacchetti diversi per impostazione predefinita, sono sicuro che troverai in /usr/share/doc/postgresql-8.4 (o forse solo postgresql) informazioni sulla file di configurazione. Molto utile da leggere nel caso in cui abbiano modificato alcuni comportamenti standard.

Dai un pesce a un uomo ... bla bla, insegna a un uomo come pescare ... ecc. Il modo giusto è sapere come fare in modo che Postgres ti dica dove si trova il file. Universalmente. show hba_file; in psql. Vedi la risposta di @ neutrino.
— Arnaud Meuret,

Se e solo se è possibile accedere all'istanza PostgreSQL in esecuzione. Se il tuo file HBA è incasinato potresti non essere in grado di farlo. Ho collegato alla risposta di Neutrino.
— Vinko Vrsalovic,

15

Apri un prompt dei comandi.

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

Quando cambiano i nomi delle impostazioni di configurazione, o vuoi vedere qualcos'altro.

=# show all;



2

Come diceva Vinko, la posizione dipende dalla distribuzione. Per aggiungere alla sua risposta:

Il software di gestione dei pacchetti ti dirà dove sono i file installati da ciascun pacchetto, (ad esempio:) dpkg -L postgresql.

Puoi anche guardare all'interno dello script di avvio del servizio (in genere /etc/init.d/postgresql)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.