Starten Sie den PostgreSQL-Server unter Windows

Bilal Shahid 15 Februar 2024
  1. Grundlegende PG_CTL-Initialisierungsbefehle in Windows
  2. Verwenden Sie SERVICES.MSC, um eine PostgreSQL-Sitzung in Windows zu STARTEN/STOPPEN.
Starten Sie den PostgreSQL-Server unter Windows

Heute lernen wir, wie man einen PostgreSQL-Server unter Windows startet. Im vorherigen Artikel über das Herunterladen und Installieren von PostgreSQL unter Windows haben wir bereits gelernt, wie man eine Sitzung startet, einen BENUTZER erstellt, Abfragen ausgibt und mit verschiedenen Datenbankobjekten arbeitet.

Unser Thema konzentriert sich nun auf den Versuch, eine PostgreSQL-Serversitzung auszuführen, mit der sich andere Benutzer in einem lokalen System verbinden können.

Grundlegende PG_CTL-Initialisierungsbefehle in Windows

PG_CTL ist ein Dienstprogramm zum Starten und Steuern eines PostgreSQL-Servers. PG_CTL ist ein manuelles Setup zum Initialisieren einer PostgreSQL-Sitzung, da es einen kontrollierten Ausgang bietet, verschiedene Aufgaben kapselt und für verschiedene Operationen im Zusammenhang mit unserer Datenbank verwendet werden kann.

Um einen Server unter Windows zu starten, gehen Sie zu Ihrer Eingabeaufforderung innerhalb der PostgreSQL-Installation für den Ordner BIN.

pg_ctl start -D "[\data folder directory]";

Dadurch wird Ihr PostgreSQL-Server gestartet. Um dies an einem anderen Port auf Ihrem Computer zu tun, den andere Benutzer abhören sollen, verwenden Sie eine Abfrage wie folgt.

pg_ctl -o "-F -p [post_number]" start

Geben Sie Ihre PORT NUMBER in die ohne Klammern definierte port_number ein. Dies hilft beim Starten Ihres Servers und ermöglicht anderen Benutzern, sich auf verschiedenen Systemen mit ihm zu verbinden.

Wenn Ihr PostgreSQL-Server jedoch aus einem bestimmten Grund oder einer leichten Fehlfunktion gestoppt wurde, verwenden Sie besser einen der folgenden Befehle, damit er funktioniert.

pg_ctl restart -D "[\data folder];
pg_ctl start company; --may or may not work / may produce errors
...

Oftmals wird es keine Notwendigkeit geben, irgendetwas davon zu tun. Wenn Sie beispielsweise PGADMIN starten, wird in der Regel bereits eine PostgreSQL-Sitzung auf einem vordefinierten Port in Ihrem PC erstellt, sodass andere Benutzer sie leicht entdecken können.

Es ist möglicherweise nicht erforderlich, einen der oben angegebenen Befehle zu schreiben, damit Ihr PostgreSQL-Server hochfährt.

Geben Sie Pfade an, während Sie PG_CTL START/RESTART in Windows ausgeben

Manchmal ist das Aufrufen eines einfachen PG_CTL START/RESTART nicht der richtige Weg. Möglicherweise müssen Sie den Ordnerpfad DATA in Ihrer PostgreSQL-Installation angeben und dann die Boot-Befehle ausführen.

Wenn Sie die oben angegebenen Abfragen aufrufen, erhalten Sie ein OUTPUT.

Ausgang:

pg_ctl: another server might be running; trying to start server anyway
waiting for server to start....2022-04-28 19:28:38.766 PKT [3228] LOG:  redirecting log output to logging collector process
2022-04-28 19:28:38.766 PKT [3228] HINT:  Future log output will appear in directory "log".
 stopped waiting
pg_ctl: could not start server
Examine the log output.

Die oben angegebene Ausgabe erfolgt, wenn bereits ein PostgreSQL-Server läuft. Da wir PGADMIN bereits hochgefahren und im Hintergrund ausgeführt hatten, wäre der Aufruf der obigen Abfrage nicht in der Lage, einen Server auf dem bereits verwendeten Port zu initialisieren.

Wenn Sie jedoch etwas unten tun, würden separate Server auf demselben PC ausgeführt.

pg_ctl -o "-F -p 5656" start -D "C:\Program Files\PostgreSQL\14\data"

Ausgang:

waiting for server to start....2022-04-28 19:34:04.588 PKT [11784] LOG:  redirecting log output to logging collector process
2022-04-28 19:34:04.588 PKT [11784] HINT:  Future log output will appear in directory "log".
 done
server started

Ebenso könnten Sie die gleichen Befehle auch für RESTART erteilen.

pg_ctl restart -D "C:\Program Files\PostgreSQL\14\data"

or

pg_ctl -o "-F -p 5656" restart -D "C:\Program Files\PostgreSQL\14\data"

Ausgang:

waiting for server to shut down.... done
server stopped
waiting for server to start....2022-04-28 19:35:46.007 PKT [884] LOG:  redirecting log output to logging collector process
2022-04-28 19:35:46.007 PKT [884] HINT:  Future log output will appear in directory "log".
 done
server started

Sie können in der Ausgabe sehen, wie der Server zuerst heruntergefahren wird, weil er bereits läuft, dann neu gestartet und während seiner Sitzung für alle Änderungen protokolliert wird.

Verwenden Sie SERVICES.MSC, um eine PostgreSQL-Sitzung in Windows zu STARTEN/STOPPEN.

Wir wissen bereits, dass ein PostgreSQL-Server auf Ihrem PC instanziiert wird, wenn Sie ihn starten, entweder von PSQL oder PGADMIN. Wir können ein paar Dinge in SERVICES.MSC für STOPPED oder PAUSED Dienste tun, dem Windows Services Manager.

  1. Drücken Sie Windows+R und geben Sie SERVICES.MSC ein.

  2. Suchen Sie nach dem Öffnen des Windows-Dienste-Managers in der Liste nach dem PostgreSQL-Serverdienst. Es kann wie folgt heißen: postgresql-x64-14 - PostgreSQL Server 14.

    Windows-Dienste-Manager

  3. Klicken Sie mit der rechten Maustaste darauf, um Ihren Server entweder zu STARTEN, STOPPEN, PAUSE, FORTSETZEN oder NEUSTARTEN. Sie können die Startzeit sogar auf AUTOMATISCH ändern, damit es beim nächsten Mal von selbst startet.

Der Services Manager teilt uns auch in der Regel die Ursache für den Ausfall eines bestimmten Dienstes mit. Um den ausführbaren Pfad anzuzeigen, können Sie die Registerkarte Allgemein öffnen und wie folgt anzeigen.

Registerkarte Allgemein

Starten Sie den PostgreSQL-Server aus der KOMMANDOPROMPT mit NET START

Wir können den Befehl NET START verwenden, um einen Dienst von der Eingabeaufforderung aus zu starten. Die Syntax ist wie folgt.

NET START [service_name]

Möglicherweise müssen Sie den SERVICE_NAME für Ihre PostgreSQL-Sitzung finden. Es wird auch auf der Registerkarte Allgemein erwähnt.

Allgemeiner Dienstname

Jetzt können Sie einen Befehl wie folgt erteilen.

net start postgresql-x64-14;

Dadurch wird unser Server hochgefahren und die Ausgabe wie folgt angezeigt.

Ausgang:

The postgresql-x64-14 - PostgreSQL Server 14 service is starting.
The postgresql-x64-14 - PostgreSQL Server 14 service was started successfully.

Denken Sie jedoch daran, dass COMMAND PROMPT als ADMINISTRATOR und nicht als normaler Benutzer gestartet werden muss.

Klicken Sie mit der rechten Maustaste auf die ausführbare Datei CMD.EXE und klicken Sie auf Als Administrator ausführen. Andernfalls erhalten Sie einen Fehler wie folgt.

Ausgang:

System error 5 has occurred.

Access is denied.

Heute haben wir also gelernt, wie man einen PostgreSQL-Server unter Windows auf verschiedene Arten startet. Wir hoffen, dass Sie diesen Artikel sorgfältig lesen und ihn Ihren Bedürfnissen entsprechend verwenden können.

Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub