PostgreSQL startet nicht auf Windows XP
Ich bin Sie versuchen, einen Windows XP-Test-Agent ausgeführt Ruby on Rails gegen eine PostgreSQL-Datenbank. Ich habe installiert PostgreSQL 9.2 für Windows, mit Standard-Einstellungen. Jedoch, wenn ich versuche zu starten, den service aus der Service-Control-Panel, wird die folgende Fehlermeldung angezeigt(belanglos, welche Benutzer ich versuchen, es zu):
The postgres-9.2 -PostgreSQL Server 9.2 service on Local Computer started and then stopped. Some services
stop automatically if they have work to do, for example, the Performance Logs and Alerts service.
Wenn ich Versuch zu starten es von der Kommandozeile aus (ob cmd.exe oder git bash immer egal):
E:\PostgreSQL\9.2\bin\pg_ctl.exe start -D E:\PostgreSQL\9.2\data
Es wird behaupten:
server starting
Aber es wird nicht gestartet (rake db:migrate meldet der server nicht läuft, wird der postgresql-Prozess ist das fehlen von Task-Manager, der Service ist aufgelistet, wie unten in der Liste Dienst, und
E:\PostgreSQL\9.2\bin\pg_ctl.exe stop -D E:\PostgreSQL\9.2\data
Bericht
pg_ctl: PID file "E:/PostgreSQL/9.2/data/postmaster.pid" does not exist Is server running?
Beim Versuch, starten Sie es wie ein server, über pg_ctl:
E:\PostgreSQL\9.2\bin\pg_ctl.exe runservice -D E:\PostgreSQL\9.2\data
Schlägt fehl mit:
pg_ctl: could not start service PostgreSQL: error code 1063
EDIT:
den Inhalt der pg_hba:
# TYPE DATABASE USER ADDRESS METHOD
local all all all trust
# IPv4 local connections:
host all all all trust
host all all 127.0.0.1/32 trust
# IPv6 local connections:
#host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#host replication all all trust
#host replication postgres 127.0.0.1/32 trust
#host replication postgres ::1/128 trust
Check-in pg_log als pro-Kommentare unter:
2012-10-28 22:47:44 PDT LOG: local connections are not supported by this build
2012-10-28 22:47:44 PDT CONTEXT: line 78 of configuration file "E:/PostgreSQL/9.2/data/pg_hba.conf"
2012-10-28 22:47:44 PDT FATAL: could not load pg_hba.conf
Linie 78 ist
local all all all trust
Immer der selbe Fehler tritt auf, wenn der als Dienst ausgeführt wird (ob durch pg_ctl runservice oder die "Dienste" der Systemsteuerung). Aber pg_ctl start nun startet postgres ohne Zwischenfälle.
Geh ich mit "gut genug"
PS: Das Event-Log-Einträge nur sagen: "Timed out waiting for server startup"
- Schauen Sie in
E:\PostgreSQL\9.2\data\pg_log
. Was tun die server-logs sagen? Auch prüfen Sie die Ereignisanzeige (unter Verwaltung in der Systemsteuerung), nach dem Versuch, starten Sie den server als Dienst. Alles, was in den Ereignisprotokollen? - Nur weil ich verbrachte 5 Stunden versucht herauszufinden, ähnliches problem: Wenn
pg_hba.conf
hat IPv6-Regel und system (z.B. WinXP) nicht unterstützt wird der Dienst nicht gestartet werden kann, jedoch ist es immer noch möglich, starten Sie postgres als eine Anwendung überpg_ctl
. Entfernen von IPv6-Regel löst das problem.
Du musst angemeldet sein, um einen Kommentar abzugeben.
UPDATE Nach änderungen zu Fragen:
Löschen Sie die Zeilen aus
pg_hba.conf
beginnen mitlocal
. Sie beziehen sich auf UNIX-socket-verbindungen, die PostgreSQL nicht unterstützt. Dann, es sei denn, etwas anderes ist auch falsch, Sie sollten in der Lage sein zu beginnen PostgreSQL. Die meisten wahrscheinlich, dass Sie kopiert und eingefügt haben, einepg_hba.conf
von einer Website, die Gespräche über PostgreSQL auf Mac OS X oder Linux, wolocal
- verbindungen werden unterstützt.Wenn Pg noch nicht starten, nach dem fixieren
pg_hba.conf
, überprüfen Sie die Protokolle wieder und sehen, was es ist, beschweren.Durch die Art und Weise, im Allgemeinen empfehle ich nicht versuchen zu laufen PostgreSQL-sowohl als Dienstleistung und über
pg_ctl
aus den gleichen Daten-Verzeichnis. Du bist wahrscheinlich zu landen mit Dateisysteme Berechtigungen Probleme, die sind schwer und nervig zu beheben, vor allem auf Windows.Zusätzlich zu @mvp-Vorschläge, ist es möglich, dass Sie versuchen zu starten PostgreSQL unter einem Benutzer, der ein Mitglied der Gruppe Administratoren. Dies ist nicht erlaubt und wird scheitern. Ich bin nicht einverstanden mit dieser Politik, aber das ist, wie es im moment ist.
Standardmäßig 9.2 eingerichtet wird unter dem Netzwerkdienstkonto ausgeführt, so dass sollte kein problem sein. Wenn Sie so konfiguriert haben, dass die Ausführung unter einem anderen Benutzerkonto das könnte das problem sein, und es könnte das problem sein, wenn dieses manuell zu.
Ist es wahrscheinlicher, dass bei manuell zu starten haben Sie nicht nur die Datei system Berechtigungen für das Verzeichnis data.
BTW, wenn
E:\
ist FAT32, es ist Ihr problem. FAT32 wird nicht unterstützt. Müssen Sie NTFS verwenden.Eher als stab in the dark, sollten Sie wirklich sein Blick auf die server-logs in
E:\PostgreSQL\9.2\data\pg_log
und die Ereignisanzeige, um zu sehen, was es verursacht zu scheitern, zu starten.pg_hba.conf
ist kaputt; siehe aktualisierte Antwortpg_hba.conf
, aber ich würde sagen, Ihr Daten-Verzeichnis Berechtigungen sind wahrscheinlich gehimmelt sich aus den versuchen, den server zu starten, wie Sie Ihren eigenen Benutzer-account, wie @ mvp vorgeschlagen.Müssen Sie über die Berechtigung problem. PostgreSQL auf windows laufen lassen will als postgres-Benutzer an. Installer wird automatisch eines erstellen und zuweisen neue Passwort ein.
Gibt es nur wenige Lösungen. Wenn Sie gerade installiert haben, diese Datenbank, dann die einfachste Lösung ist die deinstallation von Postgres löschen Sie lokale postgres-Benutzer (über
control userpasswords2
) und schließlich installieren Postgres wieder (werden Sie sicher, dass Sie admin-Rechte auf diesem Feld). Viel Glück!