Speicherort von postgresql.conf und pg_hba.conf auf einem Ubuntu-Server

16

Wo sind die Dateien postgresql.confund pg_hba.confauf einem Linux-Server, auf dem PostgreSQL 8.4 von Ubuntu Repos installiert ist?

Oleksandr
quelle
4
Das Problem ist s / w der Stuhl und die Tastatur. Es hängt davon ab, wie Sie es installiert haben. Haben Sie die Quelldatei tar-gz oder das Dienstprogramm apt verwendet? Wenn Sie die tar-gzipped-Datei heruntergeladen und installiert haben. Die Datei pg_hba.conf existiert noch nicht, es sei denn, Sie initialisieren Ihr Datenverzeichnis. Die INSTALL / Readme-Datei enthält diese Informationen. Sie finden die Datei pg_hba.conf in dem Verzeichnis, das Sie als Datenverzeichnis ausgewählt haben. Zweitens, wenn Sie das Dienstprogramm apt verwendet haben, sollten Sie es in /etc/postgresql/8.4/main finden. Sie können auch eine Suche nach dem Dateinamen durchführen, aber dies auf der gesamten Festplatte zu tun, ist CPU-aufwendig.
Nikolas Sakic
Bei der Installation von der Quelle zum Standardinstallationsverzeichnis führen Sie Folgendes aus: / usr / local / pgsql / bin / initdb -D / usr / local / pgsql / data, bevor postgres gestartet wird und die hba-Datei in diesem Verzeichnis erstellt wird.
Nikolas Sakic

Antworten:

16

Das Suchen nach "pg_hba.conf ubuntu" bei Google gibt Ihnen

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

Hier wird der Speicherort der Dateien angezeigt.

In der Dokumentation heißt es:

Die Clientauthentifizierung wird von einer Konfigurationsdatei gesteuert, die traditionell den Namen pg_hba.conf trägt und im Datenverzeichnis des Datenbankclusters gespeichert ist. (HBA steht für hostbasierte Authentifizierung.) Eine Standarddatei pg_hba.conf wird installiert, wenn das Datenverzeichnis von initdb initialisiert wird. Es ist jedoch möglich, die Authentifizierungskonfigurationsdatei an einer anderen Stelle zu platzieren. Siehe den Konfigurationsparameter hba_file.

Beachten Sie, dass der Eintrag im Datenverzeichnis des Datenbankclusters gespeichert ist und dass er über einen Konfigurationsparameter an einer anderen Stelle platziert werden kann. Die offizielle Dokumentation kann Sie nicht auf einen bestimmten Ordner verweisen, da der tatsächliche Speicherort davon abhängt, wie der Hersteller des Betriebssystems und der Administrator des Computers PostgreSQL eingerichtet haben. Denken Sie daran, dass PostgreSQL viele verschiedene Betriebssysteme (und Linux-Distributionen) unterstützt.

Wie Neutrino zeigt , können Sie den Server anweisen, den Speicherort der Datei anzuzeigen, wenn Sie über psql auf Ihren Server zugreifen können.

Auch zwei Tipps:

  1. locate hilft Ihnen, Dateien zu finden, deren Namen Sie kennen, aber nicht deren Speicherort
  2. Debian-basierte Distributionen finden Sie unter / usr / share / doc-Dokumentation darüber, wie sie standardmäßig verschiedene Pakete einrichten Konfigurationsdateien. Sehr nützlich für den Fall, dass sie Standardverhalten geändert haben.
Vinko Vrsalovic
quelle
Geben Sie einem Mann einen Fisch ... bla bla, bringen Sie einem Mann das Fischen bei. Allgemein. show hba_file; in psql. Siehe die Antwort von @ neutrino.
Arnaud Meuret
Nur wenn Sie auf Ihre laufende PostgreSQL-Instanz zugreifen können. Wenn Ihre HBA-Datei fehlerhaft ist, ist dies möglicherweise nicht möglich. Ich habe mit Neutrinos Antwort verlinkt.
Vinko Vrsalovic
15

Öffnen Sie eine Eingabeaufforderung.

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

Wenn sie die Namen der Konfigurationseinstellungen ändern oder Sie etwas anderes sehen möchten.

=# show all;
Neutrino
quelle
3

Möglicherweise

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

Wie Vinko sagte, ist der Standort vertriebsabhängig. Um zu seiner Antwort hinzuzufügen:

Ihre Paketverwaltungssoftware teilt Ihnen mit, wo die Dateien von den einzelnen Paketen installiert wurden (zum Beispiel:) dpkg -L postgresql.

Sie können auch (normalerweise /etc/init.d/postgresql) in das Dienststart-Skript schauen.

Leonbloy
quelle