Wie kann ich PostgreSQL unter Windows starten?

78

Ich habe Postgresql auf meinem Windows 10-PC installiert. Ich habe das Tool pgAdmin II verwendet, um eine Datenbank namens company zu erstellen, und jetzt möchte ich den laufenden Datenbankserver starten. Ich kann nicht herausfinden, wie das geht. Ich habe den Startbefehl in der Postgres-Befehlszeile ausgeführt, und es scheint nichts zu passieren.

Was ich tue ist:

postgres=# pg_ctl start
postgres=# pg_ctl status
postgres=# pg_ctl restart
postgres=# pg_ctl start company
postgres=# pg_ctl status

.....-> Ich sehe nichts zurück.

Sean
quelle
1
psqlstellt normalerweise ohnehin eine Verbindung zu einem laufenden Server her. Wenn Sie also starten könnten, psqlläuft Postgres bereits
a_horse_with_no_name
Vielen Dank. Ich kann sehen, was jetzt passiert.
Sean
Hinweis: pg_ctlBefehle werden Server verwendet und netBefehle sind Service bezogen

Antworten:

50

pg_ctlist ein Befehlszeilenprogramm (Windows), keine SQL-Anweisung. Sie müssen das von einem tun cmd.exe. Oder verwendennet start postgresql-9.5

Geben Sie hier die Bildbeschreibung ein


Wenn Sie Postgres über das Installationsprogramm installiert haben, sollten Sie den Windows- Dienst starten , anstatt ihn pg_ctlmanuell auszuführen, z. B.:

net start postgresql-9.5

Beachten Sie, dass der Name des Dienstes in Ihrer Installation möglicherweise anders ist. Eine weitere Option besteht darin, den Dienst über die Windows-Systemsteuerung zu starten


Ich habe das Tool pgAdmin II verwendet, um eine Datenbank namens company zu erstellen

Was bedeutet, dass Postgres bereits ausgeführt wird, sodass ich nicht verstehe, warum Sie denken, dass Sie das erneut tun müssen. Insbesondere, weil das Installationsprogramm den Dienst normalerweise so einstellt, dass er beim Start von Windows automatisch gestartet wird.


Der Grund, warum Sie kein Ergebnis sehen, ist, psqldass jeder SQL- Befehl beendet werden muss, ;in Ihrem Fall wartet er nur darauf, dass Sie die Anweisung beenden.

Weitere Informationen finden Sie hier: Warum haben einige Befehle in psql keine Auswirkung?

ein Pferd ohne Name
quelle
Fehler E: \ Software \ postgresql-12.4-1-windows-x64-binaries \ pgsql \ bin> pg_ctl -D Datadir-Start pg_ctl: Verzeichnis "datadir" existiert nicht
Mahender Reddy Yasa
Diese Antwort ist besser als oben Antwort stackoverflow.com/questions/26441873/…
Mahender Reddy Yasa
40

Gehen Sie in den Ordner bin im Laufwerk C, in dem Postgres installiert ist. Führen Sie den folgenden Befehl in Git Bash oder Eingabeaufforderung aus:

pg_ctl.exe restart -D "<path upto data>"

Ex:

pg_ctl.exe restart -D  "C:\Program Files\PostgreSQL\9.6\data"

Eine andere Möglichkeit: Geben Sie "services.msc" in das Ausführungs-Popup ein (Windows + R). Daraufhin werden alle ausgeführten Dienste angezeigt. Wählen Sie den Postgres-Dienst aus der Liste aus und klicken Sie auf Start / Stopp / Neustart.

Vielen Dank

Santosh Patel
quelle
28

Wenn Sie postgres über das Windows-Installationsprogramm installiert haben, können Sie es in den Diensten wie folgt starten:

Geben Sie hier die Bildbeschreibung ein

Matthew Lock
quelle
2
Ja, ja, das! Das Fenster Dienste zeigt Ihnen tatsächlich die Ursache des Fehlers an. Ob der Dienst nicht ausgeführt wird oder nicht wie erwartet
gestartet
Dies sollte die richtige Antwort für Windows sein. Ich bin sicher, dass pg_ctl.exe funktioniert und net start dasselbe tut wie diese Antwort, außer über die Befehlszeile, und Sie müssen den Namen des Dienstes kennen, um dies zu tun (was ich vermute, wenn Sie den Namen des Dienstes kennen , Sie brauchen diese Frage nicht beantwortet).
Jared
24

Nach vielen Suchen und Tests habe ich die Lösung gefunden: Wenn Sie in Windows sind:

1 - Zuerst müssen Sie das PG-Datenbankverzeichnis gefunden haben. Führen Sie den Befehl als SQL-Befehl in den pgAdmin-Abfragetools aus

$ show data_directory;

Ergebnis:

------------------------
- D:/PG_DATA/data      -
------------------------

2 - gehe in das bin-Verzeichnis von postgres, in meinem Fall befindet es sich "c: / programms / postgresSql / bin"

Öffnen Sie eine Eingabeaufforderung (CMD) und führen Sie diesen Befehl aus:

pg_ctl -D "D:\PSG_SQL\data" restart

Das sollte es tun.

ALWAN
quelle
1
Es ist eine Lösung, um den Server neu zu starten
ALWAN
Mit pg_ctl -D "D:\PSG_SQL\data" startsollte der Server gestartet werden.
Tobias Marschall
1

Wenn Sie eine Fehlermeldung erhalten "psql.exe 'wird nicht als interner oder externer Befehl erkannt, ..."

Es kann sein: Ursachen

  • Das System kann das Tool psql.exe nicht finden, da der Pfad zu diesem Tool in der Systemumgebungsvariablen PATH nicht angegeben ist

oder - Der PostgreSQL-Datenbankclient ist nicht auf Ihrem PC installiert

Da Sie PostgreSQL bereits installiert haben, kann letzteres nicht das Problem sein (vorausgesetzt, alles wird wie erwartet installiert).

Um das erste Problem zu beheben , geben Sie bitte den vollständigen Pfad zum bin-Verzeichnis an im PostgreSQL-Installationsordner an, in dem sich dieses Tool befindet."

Zum Beispiel

Pfad: "C: \ Programme \ PostgreSQL \ 10 \ bin"

Nandan Chaturvedi
quelle
0

Ich fand mit

net start postgres_service_name

die einzige zuverlässige Möglichkeit, Postgres unter Windows zu betreiben

Tomasz Plonka
quelle
0

Entfernen Sie die Postmaster-Datei unter "C: \ Programme \ PostgreSQL \ 9.6 \ data".

und starten Sie die PostgreSQL-Dienste neu

Kathir M.
quelle
0

Suchen Sie zuerst Ihre Binärdatei, in der sie gespeichert ist. Holen Sie sich den Pfad in Terminal Mine ist

C: \ Benutzer \ LENOVO \ Dokumente \ postgresql-9.5.21-1-windows-x64-binaries (1) \ pgsql \ bin

Finden Sie dann Ihren lokalen Benutzerdatenpfad, in dem er sich meistens befindet

C:\usr\local\pgsql\data

Jetzt müssen wir nur noch den folgenden Befehl im Pfad des Binärterminals drücken:

C: \ Benutzer \ LENOVO \ Dokumente \ postgresql-9.5.21-1-windows-x64-binaries (1) \ pgsql \ bin>pg_ctl -D "C:\usr\local\pgsql\data" start

alles erledigt!

Autovaccum Launcher gestartet! Prost!

Anupam Maurya
quelle