Instalacja PostgreSQL przez Homebrew
Prawdopodobnie większość użytkowników systemu OS X wie o Homebrew
, ale Homebrew to menedżer pakietów dla systemu OS X, który pozwala na łatwe instalowanie i uruchamianie ogromnej biblioteki aplikacji i narzędzi.
Nie będziemy przechodzić przez cały (aczkolwiek krótki) proces instalacji Homebrew, ale jeśli chcesz zainstalować Homebrew i używać go do zarządzania PostgreSQL, sprawdź polecenie instalacji w oficjalnej dokumentacji. Jeśli nie jesteś pewien, czy Homebrew jest zainstalowany, spróbuj wykonać polecenie which brew
z terminala, aby to sprawdzić.
Po zainstalowaniu Homebrew można zainstalować PostgreSQL, wydając następujące polecenia w terminalu:
$ brew update$ brew doctor$ brew install postgres
Pierwsze dwa polecenia służą do aktualizacji Homebrew i zgłaszania ewentualnych problemów (jeśli to konieczne). Następnie, oczywiście, brew install postgres
jest jednowierszowym poleceniem instalującym PostgreSQL.
Podczas instalacji powinieneś zobaczyć wiele użytecznych informacji na wyjściu, z których wiele powinno zostać skopiowanych do wykorzystania w następnych sekcjach.
Używanie LaunchAgent oraz plist do uruchamiania PostgreSQL podczas startu systemu
W większości przypadków PostgreSQL powinien być uruchamiany podczas startu systemu, dlatego należy poinformować komputer o tym fakcie.
Po pierwsze należy utworzyć katalog, w którym będzie rezydował LaunchAgents
(jeśli jeszcze nie istnieje). LaunchAgents
w systemie OS X to proste skrypty używane przez launchd
, które powodują uruchamianie programów lub kodu podczas startu systemu.
Utwórz swój user
specyficzny katalog LaunchAgents
za pomocą tego polecenia, jeśli to konieczne:
$ mkdir -p ~/Library/LaunchAgents
Teraz trzeba będzie utworzyć dowiązanie symboliczne ze skryptu, który faktycznie pozwala Postgresowi uruchomić się do katalogu LaunchAgents
. Dowiązanie symboliczne jest podobne do tworzenia nowej kopii pliku do użycia w innym katalogu, ale ponieważ jest to dowiązanie „symboliczne”, to jest ono po prostu adresem przekierowania: każde żądanie skierowane do lokalizacji tego dowiązania symbolicznego jest w rzeczywistości „przekazywane dalej” lub przekierowywane do miejsca, w którym faktycznie znajduje się prawdziwy plik.
Podaj link do pliku plist
(lista właściwości), który został wygenerowany przez Homebrew i umieść ten nowy symboliczny link w LaunchAgents
za pomocą tej komendy:
$ ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
Uwaga: Sprawdź dwukrotnie, czy to polecenie jest poprawne: Powinno być częścią wspomnianego powyżej wyjścia instalacyjnego, gdy Homebrew zainstalował Postgres na początku.
Wreszcie, ładujemy nowy plik LaunchAgent
za pomocą polecenia launchctl load
, które informuje komputer, aby uruchomił ten skrypt i uruchomił Postgres, gdy komputer się uruchomi. Ponownie, dokładna komenda do wprowadzenia dla własnej instalacji będzie wyjściem podczas instalacji Postgresa w Homebrew, ale powinna wyglądać tak:
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Ręczne uruchamianie PostgreSQL
Aby ręcznie uruchomić Postgresa bez restartu, ponownie powinieneś być w stanie użyć komendy, która została wydana podczas instalacji, tak jak poniżej:
$ postgres -D /usr/local/var/postgres
Spowoduje to próbę uruchomienia Postgresa w trybie daemon
, co oznacza, że będzie on działał jako proces w tle, nie przejmując Twojego terminala.
Uruchomienie PostgreSQL bez Homebrew
W przypadku, gdy nie posiadasz (lub nie chcesz używać) Homebrew dla Postgresa, ale masz już zainstalowanego Postgresa, możesz również uruchomić go ręcznie za pomocą pg_ctl
, który jest narzędziem uruchamiania dostarczanym przez samego Postgresa.
To uruchomi Postgresa (zakładając domyślne katalogi):
$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
A to zatrzyma Postgresa:
pg_ctl -D /usr/local/var/postgres stop -s -m fast
Startup Troubleshooting: Did You Run initdb?
W niektórych przypadkach, jeśli masz problemy z uruchomieniem Postgres, upewnij się, że wykonałeś polecenie initdb
jeden raz, które powoduje, że Postgres inicjalizuje klaster bazy danych dla nowej instalacji i pozwala połączyć się z domyślnym postgres
użytkownikiem.