Starten Sie den PostgreSQL-Server unter Windows
-
Grundlegende
PG_CTL
-Initialisierungsbefehle in Windows -
Verwenden Sie
SERVICES.MSC
, um eine PostgreSQL-Sitzung in Windows zuSTARTEN/STOPPEN
.
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.
-
Drücken Sie Windows+R und geben Sie
SERVICES.MSC
ein. -
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
. -
Klicken Sie mit der rechten Maustaste darauf, um Ihren Server entweder zu
STARTEN
,STOPPEN
,PAUSE
,FORTSETZEN
oderNEUSTARTEN
. Sie können die Startzeit sogar aufAUTOMATISCH
ä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.
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.
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.
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