Zapomniałem, jak ostatnio uruchomiłem PostgreSQL (to było miesiące temu) i nie pamiętam, gdzie znajduje się katalog danych. postgres
Polecenia wydaje się wymagać lokalizację katalogu danych.
Jestem na MacOsX, jeśli to pomaga.
/usr/local/postgres
nie istnieje na moim komputerze Mac.
Korzystając z odpowiedzi podanych poniżej, stwierdziłem, że to tutaj:
/usr/local/var/postgres
postgresql
mac-os-x
losowa osoba
źródło
źródło
data
to/usr/local/var/postgres
Odpowiedzi:
Jeśli możesz połączyć się z bazą danych z dostępem administratora, to
jest najkrótszą drogą.
Jeśli serwer nie działa i zapomniałeś, gdzie był katalog danych, naprawdę musisz zgadnąć. Wskazówki dotyczące konkretnej konwencji systemu operacyjnego lub historii powłoki.
źródło
Możesz również o to zapytać
źródło
pg_config
pokazuje wiele informacji, w tym katalog danych:Może to jednak dotyczyć konkretnego naparu; bez naparu nie wiem, co to pokazuje.
źródło
pg_config --configure
nie jest taki sam, jak tenbrew info postgresql
zalecany (który jest$(brew --prefix)/var/postgres
i nie jest dowiązaniem symbolicznym do wymienionego). Wygląda na to, że formuła jest nieco luźna przy prawidłowym używaniu flag konfiguracji.postgresql-<ver>
pakietem apt, ale wymaga równieżpostgresql-server-dev-<ver>
$(brew --prefix postgresql)/homebrew.mxcl.postgresql.plist
, spójrz dla ścieżki podążającej za-D
(jest/usr/local/var/postgres
na mojej).W systemie Ubuntu \ Debian wypróbuj
pg_lsclusters
polecenie.Na mojej maszynie:
źródło
Jeśli nie możesz się zalogować (np. Zapomniałeś hasła), ale usługa jest uruchomiona, ponieważ MacOS X jest odmianą posix, zawsze możesz sprawdzić,
ps
czy jest przekazywana jako argument:W systemie Linux z uruchomionymi dwoma instancjami postgres:
źródło
Otwórz postgresql.conf, przejdź do linii:
jest twoja odpowiedź.
źródło
postgresql.conf
find / -iname "postgresql.conf" 2>/dev/null
sprawdzićpostgresql.conf
nie madata_directory
zdefiniowanego. Jest to tylko odniesienie w komentarzu:#data_directory = 'ConfigDir' # use data in another directory
Nowoczesne wersje klienta komputerowego PostgreSQL dla OSX mają wygodne okno dialogowe „Ustawienia serwera”, które pozwala nie tylko wyświetlić listę danych, ale także otworzyć ją bezpośrednio.
Bardzo przydatne, jeśli wystąpi przypadkowa awaria komputera, która pozostawia plik blokady.
źródło
W systemach OS X 10.8 i 10.9 (nie 10.10) z zainstalowaną aplikacją serwera, w oknie terminala wpisz
W OS X 10.9 Mavericks jest to wynik, który otrzymuję z tego, który zawiera katalog danych.
Właśnie próbowałem tego w Yosemite (OS X 10.10) i postgres nie jest już wymieniony jako usługa w serveradmin (chociaż postgres jest zainstalowany).
nie wyświetla postgresów
źródło
W systemie Windows Server 2012 polecenie
pg_config
nie ujawniło katalogu danych z jakiegoś szalonego powodu. Ale znalazłem to, patrząc na plikC:\Program Files\PostgreSQL\9.4\pg_env.bat
, który zawierał ten wiersz:To była odpowiedź, której potrzebowałem.
źródło
Co powiesz na użycie standardowego narzędzia pg_config, takiego jak
pg_config --bindir
One, można również uzyskać parametry konfiguracji używane do kompilacji PostgreSQL i parsować je za pomocąpg_config --configure
źródło
--bindir
pokazuje lokalizację plików wykonywalnych, a nie katalog danych.--configure
jest OK, nawet jeśli trzeba trochę przeanalizować dane wyjściowe.Jak wskazano, można również użyć
ps
do przechwycenia lokalizacji danych, takich jak:ps -e |egrep postgres|egrep -E '[[:blank:]]+\-D'| perl -pe 's/^.*[[:blank:]]+-D[[:blank:]]+(\S+).*?$/$1/'
.To działałoby przez większość czasu. Zwróci coś podobnego
/usr/local/pgsql/data
lub gdziekolwiek indziej zostało określone w parametrach PostgreSQL przy uruchomieniu.źródło
Na podstawie odpowiedzi @Matthew Mark Miller na MacOS 10.14 przy użyciu Postgres 11 znajduje się pod adresem:
źródło
Uogólnienie na podstawie 2 najlepszych odpowiedzi:
Aby wyświetlić katalog danych bezpośrednio w wierszu polecenia:
Aby zobaczyć także wszystkie inne zdefiniowane ścieżki do plików i katalogów:
Przykładowe dane wyjściowe:
(W systemie Windows, należy wymienić
LIKE '/%'
zLIKE '%/%'
ponieważ ścieżka zaczyna się od litery dysku)źródło