Überprüfen Sie, ob PostgreSQL Server unter macOS ausgeführt wird
- Überprüfen Sie, ob PostgreSQL Server unter macOS ausgeführt wird
-
Verwenden Sie den Befehl
grep
, um den Status von PostgreSQL zu überprüfen -
Verwenden Sie den Befehl
pg_ctl status
, um den Status von PostgreSQL zu überprüfen -
Verwenden Sie den Befehl
pg_isready
, um den Status von PostgreSQL zu überprüfen - Andere Befehle zum Überprüfen des Status von PostgreSQL
- Abschluss
Dieser Artikel wurde speziell entwickelt, um Ihnen zu helfen, den Status Ihres PostgreSQL-Servers auf dem MAC-Betriebssystem zu ermitteln. In dem Artikel wurden mehrere BASH-Befehle erwähnt.
Diese können verwendet werden, um den Status von PostgreSQL zu überprüfen und ob es ausgeführt wird oder nicht.
Hinweis: Die im gesamten Artikel erwähnten BASH-Befehle funktionieren möglicherweise nicht für alle Betriebssysteme; Es ist jedoch bekannt, dass sie für macOS gut funktionieren.
Zahlreiche BASH-Befehle wurden alternativ zueinander genannt; Wenn ein Befehl nicht funktioniert, können andere Befehle ausgeführt werden, um den Status des PostgreSQL-Servers zu überprüfen.
Überprüfen Sie, ob PostgreSQL Server unter macOS ausgeführt wird
Es können zahlreiche Befehle verwendet werden, die zu den BASH-Befehlen wechseln, um den Status von PostgreSQL zu überprüfen. Dieser Artikel konzentriert sich auf die Befehle, mit denen Sie feststellen können, ob PostgreSQL ausgeführt wird oder nicht.
Bevor wir uns mit den BASH-Befehlen befassen, sehen wir uns die Fehlermeldungen an, die Sie möglicherweise erhalten, wenn Sie versuchen, auf PostgreSQL zuzugreifen.
Fehlermeldungen
Lassen Sie uns einen Blick auf die folgenden Meldungen werfen und analysieren, ob Ihnen diese bekannt vorkommen oder nicht.
[~/dev/working/sw] sudo bundle exec rake db:migrate rake aborted!
could not connect to the server: Connection refused
Is the server running on the host "localhost" and accepting TCP/IP connections on port 5432?
Eine weitere Fehlermeldung, die erscheint, wenn Sie den Befehl pg_ctl
verwenden, lautet wie folgt:
> which postgres
/usr/local/bin/postgres
> pg_ctl -D /usr/local/bin/postgres -l usr/local/bin/postgres/server.log start
pg_ctl: could not open PID file "/usr/local/bin/postgres/postmaster.pid": Not a directory
Dies sind zwei Beispiele für Fehlermeldungen, auf die Sie möglicherweise gestoßen sind, als Sie versucht haben, PostgreSQL auf Ihrem System auszuführen. Diese Fehler können auf eine falsche Pfadeinstellung während des Initialisierungsprozesses zurückzuführen sein.
Wenn Sie den Befehl initdb
verwenden, um einen PostgreSQL-Datenbankcluster zu erstellen, müssen Sie den richtigen Pfad angeben, der auf den Speicherort von PostgreSQL verweist. Wenn bei der Pfadinitialisierung ein Fehler auftritt, müssen Sie ihn korrigieren und dann prüfen, ob PostgreSQL funktioniert oder nicht.
Unten wurden mehrere BASH-Befehlsoptionen bereitgestellt, sodass Sie eine davon auswählen können, um den Status von PostgreSQL zu überprüfen. Lassen Sie uns jeden der Befehle im Detail besprechen.
Verwenden Sie den Befehl grep
, um den Status von PostgreSQL zu überprüfen
Der erste BASH-Befehl, der hilft zu prüfen, ob Prozesse laufen oder nicht, lautet wie folgt:
> ps auxwww | grep postgres
Oder Sie können eine andere Version desselben Befehls ausprobieren, nämlich:
> ps aux | grep postgres
Die Antwortnachricht hilft Ihnen festzustellen, ob PostgreSQL ausgeführt wird oder nicht. Wenn Sie den PostgreSQL-Server starten möchten, müssen Sie nach einem Befehl suchen, der dem folgenden ähnelt.
/Library/PostgreSQL/12/bin/postgres -D /Library/PostgreSQL/12/data
Im obigen Befehl steht 12
für die PostgreSQL-Version. Wenn Sie eine andere Version von PostgreSQL installiert haben, sehen Sie an der Stelle von 12
eine andere Zahl.
Verwenden Sie zum Starten des PostgreSQL-Servers den folgenden Befehl.
/Library/PostgreSQL/12/bin/pg_ctl start-D /Library/PostgreSQL/12/data -l postgres.log
Hinweis:
/Library/PostgreSQL/12/data
ist ein beliebiges Datenbank-Cluster-Verzeichnis, das vom Benutzer mitinitdb
im Initialisierungsprozess erstellt wird.
Mit diesen Befehlen können Sie feststellen, ob PostgreSQL ausgeführt wird oder nicht. Wenn PostgreSQL nicht läuft, können Sie es mit dem obigen Befehl starten.
Verwenden Sie den Befehl pg_ctl status
, um den Status von PostgreSQL zu überprüfen
Ein weiterer BASH-Befehl, der den Status von PostgreSQL überprüft, lautet wie folgt:
> pg_ctl status
Der Befehl pg_ctl status
prüft die Existenz des Postmaster-Prozesses. Der Befehl meldet, dass er ausgeführt wird, wenn er den Prozess finden kann.
Hinweis: Der Laufstatus zeigt nicht an, dass der Postmaster bereit ist, andere Verbindungen anzunehmen oder weitere Abfragen auszuführen.
Die Umgebungsvariable PGDATA
erfordert möglicherweise auch einige Bearbeitungen, um den Status von PostgreSQL zu überprüfen. Hier ist eine Darstellung der PostgreSQL-Datei ~/.bashrc
.
export PGDATA='/usr/local/var/postgres'
export PGHOST=localhost
alias start-pg='pg_ctl -l $PGDATA/server.log start'
alias stop-pg='pg_ctl stop -m fast'
alias show-pg-status='pg_ctl status'
alias restart-pg='pg_ctl reload'
Nachdem Sie die Umgebungsvariable bearbeitet haben, müssen Sie unbedingt den folgenden Befehl ausführen, um die Datei zu beziehen.
> . ~/.bashrc
Danach können Sie den Befehl show-pg-status
für PostgreSQL auf BASH ausführen.
> show-pg-status
pg_ctl: server isrunning (PID: 11030)
/usr/local/Cellar/postgresql/9.2.4/bin/postgres
Mit dem Befehl pg_ctl
kann der PostgreSQL-Server auch manuell gestartet werden. Es ist wichtig, den Pfad von PostgreSQL zu bestimmen, bevor Sie den Befehl ausführen.
Der Pfad kann mit dem Befehl what postgres
ermittelt werden. Es kann dann verwendet werden, um PostgreSQL manuell zu starten.
> pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Verwenden Sie den Befehl pg_isready
, um den Status von PostgreSQL zu überprüfen
Ein weiterer interessanter Befehl, den Sie sich ansehen sollten, ist der Befehl pg_isready
. Dies wird verwendet, um den Verbindungsstatus des PostgreSQL-Servers zu überprüfen.
> pg_isready
Die Ausführung des Befehls pg_isready
gibt einen der folgenden Werte zurück:
0
- zeigt an, dass der Server Verbindungen wie gewohnt akzeptiert.1
- wird zurückgegeben, wenn der Server keine Verbindungen akzeptiert.2
- zeigt an, dass nach dem Verbindungsversuch keine Antwort erhalten wurde.3
- zeigt an, dass kein Verbindungsversuch unternommen wurde; dies kann beispielsweise an einem Fehler liegen, bei dem ungültige Parameter verwendet werden.
Andere Befehle zum Überprüfen des Status von PostgreSQL
Es gibt mehrere andere Optionen für BASH-Befehle, mit denen Sie den Status von PostgreSQL überprüfen können.
Versuchen Sie, den Befehl psql
oder pgrep postgres
zu verwenden, um festzustellen, ob der PostgreSQL-Server auf Ihrem MAC läuft oder nicht.
Abschluss
Unterschiedliche Betriebssysteme erfordern unterschiedliche Befehle, um dieselbe Funktion auszuführen. Es ist bekannt, dass die im Artikel erwähnten BASH-Befehle unter macOS gut funktionieren; Sie können diese jedoch auch auf anderen Betriebssystemen ausprobieren.