PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So starten Sie PostgreSQL Server auf Mac OS X über Homebrew

Installieren Sie PostgreSQL über Homebrew

Wahrscheinlich kennen die meisten OS X-Benutzer Homebrew , aber Homebrew ist ein Paketmanager für OS X, mit dem Sie problemlos eine riesige Bibliothek von Anwendungen und Dienstprogrammen installieren und ausführen können.

Wir werden nicht den gesamten (wenn auch kurzen) Installationsprozess von Homebrew durchgehen, aber wenn Sie Homebrew installieren und für die PostgreSQL-Verwaltung verwenden möchten, sehen Sie sich den Installationsbefehl in der offiziellen Dokumentation an. Wenn Sie nicht sicher sind, ob Homebrew installiert ist, versuchen Sie es mit which brew Befehl vom Terminal zu verifizieren.

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

$ brew update
$ brew doctor
$ brew install postgres

Die ersten beiden Befehle werden verwendet, um Homebrew zu aktualisieren und potenzielle Probleme zu melden (falls erforderlich). Dann natürlich brew install postgres ist der einzeilige Befehl zum Installieren von PostgreSQL.

Während der Installation sollten Sie viele nützliche Informationen in der Ausgabe sehen, von denen viele für die Verwendung in den nächsten Abschnitten nach unten kopiert werden sollten.

Einen LaunchAgent und plist verwenden, um PostgreSQL beim Start zu starten

In den meisten Fällen möchten Sie wahrscheinlich, dass PostgreSQL gestartet wird, wenn Sie Ihr System starten, also müssen Sie Ihrem Computer mitteilen, dass Sie dies wünschen.

Zuerst müssen Sie ein Verzeichnis für Ihre LaunchAgents erstellen zu residieren (falls das Verzeichnis noch nicht existiert). LaunchAgents in OS X sind einfache Skripte, die von launchd verwendet werden die dazu führen, dass das System während des Starts Programme oder Code ausführt.

Erstellen Sie Ihren user -spezifische LaunchAgents Verzeichnis ggf. mit diesem Befehl:

$ mkdir -p ~/Library/LaunchAgents

Jetzt müssen Sie einen symbolischen Link aus dem Skript erstellen, der es Postgres tatsächlich ermöglicht, zu den LaunchAgents zu laufen Verzeichnis. Ein symbolischer Link ähnelt dem Erstellen 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 an diesen symbolischen Linkort wird tatsächlich „weitergeleitet“. oder dorthin umgeleitet, wo die echte Datei befindet sich tatsächlich.

Link zur plist (Property List)-Datei, die von Homebrew generiert wurde, und platzieren Sie diesen neuen symbolischen Link in LaunchAgents mit diesem Befehl:

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

Hinweis:Überprüfen Sie noch einmal, ob der Befehl korrekt ist:Er sollte Teil der oben erwähnten Installationsausgabe gewesen sein, als Homebrew Postgres ursprünglich installiert hat.

Abschließend laden wir den neuen symbolisch verlinkten LaunchAgent Datei mit dem launchctl load Befehl, der den Computer speziell darüber informiert, dieses Skript auszuführen und Postgres zu starten, wenn der Computer gestartet wird. 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

PostgreSQL manuell starten

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

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

Dadurch wird versucht, Postgres im daemon zu starten Modus, was bedeutet, dass es als Hintergrundprozess läuft, ohne Ihr Terminal zu übernehmen.

PostgreSQL ohne Homebrew starten/beenden

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

Dadurch wird Postgres gestartet (unter der Annahme von Standardverzeichnissen):

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

Und das wird Postgres stoppen:

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

Fehlerbehebung beim Start:Haben Sie initdb ausgeführt ?

Wenn Sie in einigen Fällen Probleme beim Ausführen von Postgres haben, vergewissern Sie sich, dass Sie die initdb ausgeführt haben einmal auszuführen, wodurch Postgres den Datenbankcluster für eine Neuinstallation initialisiert und Sie sich mit dem standardmäßigen postgres verbinden können Benutzer.