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.