Wie man PostgreSQL Server unter Mac OS X über Homebrew startet

PostgreSQL über Homebrew installieren

Wahrscheinlich kennen die meisten OS X Benutzer Homebrew, aber Homebrew ist ein Paketmanager für OS X, der es Ihnen erlaubt, eine riesige Bibliothek von Anwendungen und Dienstprogrammen einfach zu installieren und zu betreiben.

Wir werden nicht den gesamten (wenn auch kurzen) Installationsprozess von Homebrew durchgehen, aber wenn Sie Homebrew installieren und für die Verwaltung von PostgreSQL verwenden wollen, schauen Sie sich den Installationsbefehl in der offiziellen Dokumentation an. Wenn Sie sich nicht sicher sind, ob Homebrew installiert ist, versuchen Sie es mit dem which brew-Befehl aus dem Terminal, um das zu überprüfen.

Sobald Homebrew installiert ist, können Sie PostgreSQL installieren, indem Sie die folgenden Befehle in Ihrem Terminal eingeben:

$ brew update$ brew doctor$ brew install postgres

Die ersten beiden Befehle dienen dazu, Homebrew zu aktualisieren und eventuelle Probleme zu melden (falls nötig). Dann, natürlich, brew install postgres ist der einzeilige Befehl für die Installation von PostgreSQL.

Sie sollten eine Menge nützlicher Informationen in der Ausgabe während der Installation sehen, von denen viele für die Verwendung in den nächsten Abschnitten kopiert werden sollten.

Verwenden von LaunchAgent und plist zum Starten von PostgreSQL beim Systemstart

In den meisten Fällen werden Sie wahrscheinlich wünschen, dass PostgreSQL beim Starten Ihres Systems gestartet wird, also müssen Sie Ihrem Computer sagen, dass dies Ihr Wunsch ist.

Zuerst müssen Sie ein Verzeichnis für Ihr LaunchAgents erstellen (falls das Verzeichnis nicht bereits existiert). LaunchAgents sind in OS X einfache Skripte, die von launchd verwendet werden und das System veranlassen, Programme oder Code während des Starts auszuführen.

Erstellen Sie mit diesem Befehl gegebenenfalls Ihr user-spezifisches LaunchAgents-Verzeichnis:

$ mkdir -p ~/Library/LaunchAgents

Nun müssen Sie aus dem Skript einen symbolischen Link erstellen, der es Postgres ermöglicht, in das LaunchAgents-Verzeichnis zu gelangen. Ein symbolischer Link ist vergleichbar mit dem Anlegen einer neuen Kopie einer Datei zur Verwendung in einem anderen Verzeichnis, aber da der Link „symbolisch“ ist, ist der Link nur eine Weiterleitungsadresse: Jede Anfrage, die an den Ort des symbolischen Links gestellt wird, wird tatsächlich dorthin „weitergeleitet“ oder umgeleitet, wo sich die echte Datei befindet.

Verknüpfen Sie die plist (Eigenschaftsliste) Datei, die von Homebrew erzeugt wurde, und platzieren Sie diesen neuen symbolischen Link in LaunchAgents mit diesem Befehl:

$ ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents

Hinweis: Vergewissern Sie sich, dass der Befehl korrekt ist: Er sollte Teil der oben erwähnten Installationsausgabe gewesen sein, als Homebrew Postgres anfänglich installierte.

Schließlich laden wir die neue, symbolisch verknüpfte LaunchAgent-Datei mit dem launchctl load-Befehl, der dem Computer genau mitteilt, dass er dieses Skript ausführen und Postgres starten soll, wenn der Computer startet. Auch hier wird der genaue Befehl, den Sie für Ihre eigene Installation eingeben müssen, während der Postgres-Installation von Homebrew ausgegeben, aber er sollte in etwa so aussehen:

$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

Manuelles Starten von PostgreSQL

Um Postgres manuell zu starten, ohne neu zu booten, sollten Sie wieder den Befehl verwenden können, der während der Installation ausgegeben wurde, etwa so:

$ postgres -D /usr/local/var/postgres

Damit wird versucht, Postgres im daemon-Modus zu starten, das heißt, es läuft als Hintergrundprozess, ohne Ihr Terminal zu übernehmen.

PostgreSQL ohne Homebrew starten/stoppen

Für den Fall, dass Sie Homebrew für Postgres nicht haben (oder nicht verwenden wollen), Postgres aber bereits installiert haben, können Sie es auch manuell mit pg_ctl starten, was das von Postgres selbst bereitgestellte Startprogramm ist.

So wird Postgres (unter Annahme der Standardverzeichnisse) gestartet:

$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

Und so wird Postgres gestoppt:

pg_ctl -D /usr/local/var/postgres stop -s -m fast

Startup Troubleshooting: Haben Sie initdb ausgeführt?

Wenn Sie Probleme beim Starten von Postgres haben, stellen Sie sicher, dass Sie den initdb-Befehl einmal ausgeführt haben, der Postgres dazu veranlasst, den Datenbank-Cluster für eine neue Installation zu initialisieren und Ihnen erlaubt, sich mit dem Standard-postgres-Benutzer zu verbinden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.