Lokalizacja postgresql.conf i pg_hba.conf na serwerze Ubuntu

16

Gdzie są pliki postgresql.confi pg_hba.confna serwerze Linux z PostgreSQL 8.4 zainstalowany z repozytoriów Ubuntu?

Ołeksandr
źródło
4
Problemem jest czarno-białe krzesło i klawiatura. To zależy od tego, jak to zainstalowałeś. Czy korzystałeś ze źródłowego pliku tar-gz, czy korzystałeś z narzędzia apt? Jeśli pobierzesz plik tar-gzip i zainstalujesz go. Plik pg_hba.conf jeszcze nie istnieje, chyba że zainicjujesz katalog danych. Plik INSTALL / Readme zawiera te informacje. Plik pg_hba.conf znajdziesz w dowolnym katalogu wybranym jako katalog danych. Po drugie, jeśli używałeś narzędzia apt, powinieneś je znaleźć w /etc/postgresql/8.4/main, możesz także wykonać „znajdź” w nazwie pliku, ale robienie tego na całym dysku jest procesorochłonne.
Nikolas Sakic,
Instalując ze źródła do domyślnej lokalizacji instalacji, uruchom następujące: / usr / local / pgsql / bin / initdb -D / usr / local / pgsql / data przed uruchomieniem postgres i plik hba zostanie utworzony w tym katalogu.
Nikolas Sakic,

Odpowiedzi:

16

Szukasz „pg_hba.conf ubuntu” w Google daje

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

która pokazuje lokalizację plików.

Dokumentacja stwierdza, co następuje:

Uwierzytelnianie klienta jest kontrolowane przez plik konfiguracyjny, który tradycyjnie nosi nazwę pg_hba.conf i jest przechowywany w katalogu danych klastra bazy danych. (HBA oznacza uwierzytelnianie oparte na hoście). Domyślny plik pg_hba.conf jest instalowany podczas inicjowania katalogu danych przez initdb. Możliwe jest jednak umieszczenie pliku konfiguracyjnego uwierzytelnienia w innym miejscu; zobacz parametr konfiguracyjny hba_file.

Zauważ, że napisane jest w katalogu danych klastra bazy danych i że można go umieścić gdzie indziej, poprzez parametr konfiguracyjny. Oficjalna dokumentacja nie może wskazać konkretnego folderu, ponieważ rzeczywista lokalizacja zależy zarówno od tego, jak twórca systemu operacyjnego i administrator urządzenia skonfigurowali PostgreSQL. Pamiętaj, PostgreSQL obsługuje wiele różnych systemów operacyjnych (i dystrybucji Linuksa).

Jak pokazuje Neutrino , jeśli możesz uzyskać dostęp do swojego serwera za pomocą psql, możesz mu powiedzieć, aby pokazał lokalizację pliku.

Ponadto dwie wskazówki:

  1. locate pomoże ci znaleźć pliki, które znasz nazwę, ale nie lokalizację
  2. Dystrybucje oparte na Debianie umieszczają w dokumentacji / usr / share / doc informacje o tym, jak domyślnie konfigurują różne pakiety, jestem pewien, że znajdziesz w /usr/share/doc/postgresql-8.4 (a może po prostu postgresql) informacje o pliki konfiguracyjne. Bardzo przydatny do czytania w przypadku, gdy zmodyfikowali jakieś standardowe zachowanie.
Vinko Vrsalovic
źródło
Daj człowiekowi rybę ... bla bla, naucz człowieka, jak łowić ryby ... itd. Właściwy sposób to wiedzieć, jak postgres mówi ci, gdzie jest plik. Uniwersalnie. show hba_file; w psql. Zobacz odpowiedź @ neutrino.
Arnaud Meuret
Jeśli tylko możesz uzyskać dostęp do działającej instancji PostgreSQL. Jeśli twój plik HBA jest pomieszany, możesz nie być w stanie. Powiązałem z odpowiedzią Neutrino.
Vinko Vrsalovic
15

Otwórz wiersz polecenia.

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

Kiedy zmieniają nazwy ustawień konfiguracji lub chcesz zobaczyć coś innego.

=# show all;
Neutrino
źródło
3

Możliwie

/etc/postgresql/9.*/main
kmonsoor
źródło
2

Jak powiedział Vinko, lokalizacja zależy od dystrybucji. Aby dodać do swojej odpowiedzi:

Oprogramowanie do zarządzania pakietami powie ci, gdzie są zainstalowane pliki dla każdego pakietu (na przykład dpkg -L postgresql:).

Możesz także zajrzeć do skryptu uruchamiania usługi (zwykle /etc/init.d/postgresql)

leonbloy
źródło