web-dev-qa-db-ger.com

PostgreSQL kann nicht als Windows-Dienst ausgeführt werden

Ich hatte dies in meinen Windows-Diensten:

C:/Program Files/PostgreSQL/8.4/bin/pg_ctl.exe runservice -N "postgresql-8.4" -D "D:/PostgreSQL/8.4/data" -w

Die Ausführung wird nie abgeschlossen. Aber wenn ich das auf der DOS-Shell getan habe:

C:/Program Files/PostgreSQL/8.4/bin/pg_ctl.exe start -N "postgresql-8.4" -D "D:/PostgreSQL/8.4/data" -w

Beachten Sie, dass ich nur den "Runservice" in "Start" geändert habe und es funktioniert einwandfrei.

Irgendeine Idee?

23
David

Der Befehl runservice kann nur vom Service Manager ausgeführt werden

um mein localhost-windows 7 zu reparieren, um postgres als Dienst zu starten Ich habe den folgenden Befehl zum Starten der Daten verwendet

 pg_ctl -D "C:\Program Files\PostgreSQL\9.1\data" start 

Dann den Status auf Fehler überprüft

 pg_ctl -D "C:\Program Files\PostgreSQL\9.1\data" status 

wenn Sie die Fehlermeldung 1063 erhalten, deren Berechtigungen höchstwahrscheinlich sind, habe ich den folgenden Befehl ausgeführt

 cacls "C:\Program Files\PostgreSQL\9.1\data" /E /T /C /G postgres:F

dann wurde der Start/Status erneut angezeigt, es zeigte alles in Ordnung, aber der Service-Manager konnte den Dienst trotzdem nicht starten

Also habe ich in Services-> postgresql-> options-> logon die Anmeldung als lokales Systemkonto anstelle des postgres-Benutzers festgelegt, und voila, es hat funktioniert

33
Jay Rizzi

dies ist mir passiert, weil ich mein Datenverzeichnis auf irgendwo gesetzt habe, auf das der Windows-Benutzerkonto von postgres keinen Zugriff hatte.

11
pstanton

Ich hatte dieses Problem nach einem Systemabsturz in Windows. Beim Ausführen des ersten Befehls wurden ungültige Daten in C:\Program Files\PostgreSQL\9.1\data\postmaster.pid angezeigt. Das Löschen dieser Datei war der Trick. Referenz.

4
Tom

Das gleiche Problem hatte ich, nachdem ich die Datenbank-Datendateien (PG_DATA-Verzeichnis) manuell verschoben habe, ohne alle erforderlichen Berechtigungen neu zu erstellen.

So habe ich mein Problem gelöst:

1. Überprüfen Sie die Berechtigungen für das alte PG_DATA-Verzeichnis:

cacls "c:\path\to\old\pgdata\dir"

2. Überprüfen Sie die Berechtigungen für das neue PG_DATA-Verzeichnis:

cacls "d:\path\to\NEW\pgdata\dir"

3. Vergleichen Sie die Ausgänge von 1. und 2.

Finden Sie die Unterschiede zwischen Benutzern und/oder Berechtigungen und synchronisieren Sie sie.

Nota: Ich fand es einfacher, Explorer für den Synchronisationsschritt zu verwenden, als cacls direkt von der Befehlszeile aus.

4
Stephan

Wenn Sie pg_hba.conf geändert haben, haben Sie vielleicht irgendwo in der Datei etwas vermisst. Zum Beispiel muss in dieser Datei nach IP ein CIDR stehen. Es muss wie 192.168.1.100/32 sein 

Wenn Sie vergessen haben, 32 zu setzen, wird der Server nicht neu gestartet.

Die Untersuchung von Startprotokollen könnte ein Hinweis sein. Für den Fall Problem in der pg_hba.conf könnte man so etwas sehen:

2018-11-13 00:39:34.841 PST [8284] FATAL:  could not load pg_hba.conf
2018-11-13 00:39:34.842 PST [8284] LOG:  database system is shut down
2
onur

Sie müssen Ihre Protokolldateien und das Windows-Ereignisprotokoll auf Hinweise zum Problem überprüfen. Wenn überhaupt nichts vorhanden ist, müssen Sie etwas wie Process Monitor herausbrechen und sich einen Stacktrace von dem, wo es hängt, holen.

2
Magnus Hagander

Ich hatte dieses Problem in der Vergangenheit, und das Installationsprogramm hat die Berechtigungen für den Benutzer, unter dem der Dienst ausgeführt werden soll, nicht korrekt eingerichtet.

2
Grant Johnson

PostgreSQL 10 installieren Unter Windows 7 (ja, die Uhr tickt ...). Ich habe zuerst die neueste Version 11 ausprobiert, die sich nicht installieren ließ ... kein gutes Zeichen für Windows-Benutzer. Sowieso.

Schnelle Antwort: Ändern Sie das Konto im Fenster "Windows-Dienste" von "Netzwerk" in "Lokal".

Details zu meinem Fall

Während der Installation habe ich einen Datenordner im Benutzerprofilordner erstellt/ausgewählt, da der standardmäßig vorgeschlagene Ordner im Programmordner offensichtlich nicht funktioniert. Wenn dies funktioniert, wäre es eine gute Idee, Daten hier abzulegen (ich ziehe an Ich weiß nicht, ob dies unter Unix/Linux üblich ist, aber unter Windows ist dies für lange Zeit nicht zulässig.

Am Ende (beim Auffüllen des Datenclusters) erhielt ich eine Fehlermeldung:

Laden der SQL-Module in den Datenbankcluster fehlgeschlagen

die Installation konnte jedoch abgeschlossen werden. Ich habe zwei Seiten über den vorherigen Fehler gefunden, hier und hier , aber sie schienen für meinen Fall nicht relevant zu sein. Deshalb habe ich pgAdmin und im linken "Browser" gestartet. , sah, dass der Server nicht aktiv war.

Ich habe versucht, es von hier aus zu starten (musste das Hauptkennwort eingeben), aber es wurde sofort wieder inaktiv. Also habe ich versucht, über das Windows-Bedienfeld "postgresql-x64-10" zu starten, keine Freude. Ich habe den Befehl von diesem Panel kopiert und in eine Windows-Konsole (cmd.exe) eingefügt, wo ich ihn schließlich erhalten habe

fehler 1063.

Auf der Suche habe ich diese verwandte Frage gefunden und war überzeugt, dass es sich bei dem Problem um Berechtigungen handelt.

Lösung für meinen Fall

Wie in einem Kommentar von @AlexanderRios vorgeschlagen, habe ich im Bereich "Dienste" das Konto geändert, mit dem der Dienst vom Netzwerkdienst zum lokalen System gestartet wurde.

0
mins

Öffnen Sie pgAdmin III und dann im rechten Bereich den Server suchen. Klicken Sie dann mit der rechten Maustaste und stellen Sie eine Verbindung her. Geben Sie das Kennwort ein. Gehen Sie nach dem Verbinden zum Browser und aktualisieren Sie ODOO. Problem gelöst.

Siehe Bild für ein besseres Verständnis

 enter image description here

0
M Kamran Haider