Jak uruchomić serwer PostgreSQL na Mac OS X przez Homebrew

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.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *