PostgreSQL: Die Initialisierung des Datenbankclusters ist fehlgeschlagen

15

Beide C:\PostgreSQLund C:\PostgreSQL\datahaben postgresBenutzer mit Vollzugriff und Administratorrechten.

Ich ließ postgresql-9.1.2-1-windows.exe vom postgres Benutzer als admin laufen. ZielC:\PostgreSQL

Bei jedem Versuch erhalte ich die Meldung "Die Initialisierung des Datenbankclusters ist fehlgeschlagen."

Fragen

  • Ist es in Ordnung, alles auszuführen, ohne ein Windows-Dienst zu sein?
  • Gibt es eine Problemumgehung für die Installation als Windows-Dienst?

Ich versuche, PostGIS für die Arbeit mit GeoDjango einzurichten.

Ich konnte PostGIS manuell installieren. Neu bei PostgreSQL und ich habe eine Vertrauenskrise in Bezug auf all das. Zum ersten Mal von MySQL nach PostgreSQL.


Relevante Protokollausgabe von C: \ Users \ Larry \ AppData \ Local \ Temp \ install-postgresql.log:

WScript.Network initialized...
Called IsVistaOrNewer()...
    'winmgmts' object initialized...
    Version:6.1
    MajorVersion:6
Ensuring we can read the path C: (using icacls) to Larry:
    Executing batch file 'radA3CF7.bat'...
    Output file does not exists...
Called IsVistaOrNewer()...
    'winmgmts' object initialized...
    Version:6.1
    MajorVersion:6
Ensuring we can read the path C:\PostgreSQL (using icacls) to Larry:
    Executing batch file 'radA3CF7.bat'...
    Output file does not exists...
Called IsVistaOrNewer()...
    'winmgmts' object initialized...
    Version:6.1
    MajorVersion:6
Ensuring we can read the path C:\PostgreSQL\data (using icacls) to Larry:
    Executing batch file 'radA3CF7.bat'...
    Output file does not exists...
Called IsVistaOrNewer()...
    'winmgmts' object initialized...
    Version:6.1
    MajorVersion:6
Ensuring we can write to the data directory (using icacls) to  Larry:
    Executing batch file 'radA3CF7.bat'...
    Output file does not exists...
Failed to ensure the data directory is accessible (C:\PostgreSQL\data)
    Executing batch file 'radA3CF7.bat'...
    Output file does not exists...
Called Die(Failed to initialise the database cluster with initdb)...
Failed to initialise the database cluster with initdb

Vorschläge?

Larry Eitel
quelle
Siehe Installationsprotokoll (es sollte sich irgendwo auf der Festplatte befinden, wahrscheinlich in% TEMP%)
filiprem
Bitte beachten Sie die entsprechende Protokollausgabe.
Larry Eitel
Verfügt der Postgres- Windows- Benutzer über vollständige Lese- und Schreibrechte für C: \ PostgreSQL \ -Daten ?
a_horse_with_no_name
Ja, UND aufgrund eines Vorschlags an einer anderen Stelle habe ich den Benutzern Änderungsberechtigungen für dieses Verzeichnis erteilt.
Larry Eitel
@ LarryEitel: aber "Konnte nicht sicherstellen, dass auf das Datenverzeichnis zugegriffen werden kann (C: \ PostgreSQL \ data) " scheint etwas anderes anzuzeigen.
a_horse_with_no_name

Antworten:

17

Ich hatte das gleiche Problem bei der Installation von 9.1.4 unter Windows 7. Es gelang mir, online eine funktionierende Lösung zu finden .

Die Schritte, denen ich gefolgt bin, sind:

  1. Deinstallieren Sie PostgreSQL
  2. Löschen Sie den postgres-Benutzer, falls er noch vorhanden ist.

    net user postgres /delete
  3. Erstellen Sie den postgres-Benutzer mit einem Passwort, das Sie sich merken können

    net user /add postgres <password>
  4. Fügen Sie den Benutzer postgres der Gruppe Administratoren hinzu

    net localgroup administrators postgres /add
  5. Fügen Sie den Benutzer postgres der Gruppe Hauptbenutzer hinzu

    net localgroup "power users" postgres /add
  6. Führen Sie als postgres-Benutzer ein Befehlsfenster aus

    runas /user:postgres cmd.exe
  7. Führen Sie die Installationsdatei im Befehlsfenster aus.

    C:\Download\postgresql-9.1.4-1-windows.exe

    Dies sollte die Installation erfolgreich ausführen.

  8. Entfernen Sie den Benutzer postgres aus der Gruppe Administratoren.

    net localgroup administrators postgres /delete
Imraan
quelle
Danke für die Bewertung. Leider habe ich dieses Projekt inzwischen auf Mongodb verlagert. Ich bin im Moment nicht in der Lage, Ihren Vorschlag zu bestätigen.
Larry Eitel
Ich möchte bestätigen, dass die Lösung für mich funktioniert hat. Setup: Postgres 9.1 64 Bit und PostGIS 2.0.1 x64
Chris
1
Dies ist ein bekanntes Problem bei der Neuinstallation von PostgreSQL, das als Dienst ausgeführt wird, und ich bin persönlich auf die Situation gestoßen, die in dieser Antwort angesprochen wird. Das Installationsprogramm hinterlässt beim Entfernen oder Aktualisieren ein Konto, die zweite Installation berücksichtigt dies jedoch nicht. Die daraus resultierende Ungleichheit der Anmeldeinformationen zwischen den Installationen führt zu Chaos. Die allgemeinste Antwort ist die, die Imraan gibt; Deinstallieren Sie, entfernen Sie das betreffende Konto und installieren Sie es erneut.
Avery Payne
@AveryPayne: Alternativ: Erinnern Sie sich an das richtige Passwort für das Postgres-Dienstkonto. Ich habe Postgres häufig auf Systemen installiert, auf denen es bereits installiert war und bei denen noch nie ein Problem mit einem vorhandenen Dienstkonto aufgetreten ist. Die Formulierung im Installer hätte verbessert werden können (mit 9.2 verwendet Postgres übrigens keinen expliziten Account mehr)
a_horse_with_no_name
Beachten Sie, dass Schritt 4 von der administratorsLändereinstellung abhängt. Zum Beispiel in PT-BR ist es administradores. Und in Schritt 5 "power users"ist "usuários avançados".
GuiRitter
1

In meinem Fall (wie ich in der Datei postgresql.log im Ordner% temp% von Windows gesehen habe) war dies darauf zurückzuführen, dass das Installationsprogramm doskey.exe nicht finden konnte, obwohl der Pfad zum Ordner c: \ windows \ system32 im angegeben wurde Umgebungsvariable Pfad von Windows.
Also habe ich eine Eingabeaufforderung geöffnet, set PATH=%PATH%;c:\windows\system32das Installationsprogramm über die Eingabeaufforderung selbst eingegeben und ausgeführt. Es funktionierte! :)

Nav
quelle
1

Keines der oben genannten hat bei mir funktioniert. Ich hatte keine Verwendung Postgres.

Also habe ich alles gelöscht / deinstalliert. Ran cmd als Administrator.

Führen Sie dann das Installationsprogramm über die Befehlszeile (als Administrator) aus und wählen Sie einen völlig neuen Speicherort für das Datenverzeichnis aus.

Ich habe jetzt erfolgreich postgres, nach einem halben Tag von jiggery pokery neu installiert.

NimChimpsky
quelle
1

Ich hatte die gleiche Fehlermeldung beim Versuch, 9.2.4 zu installieren. Mein Problem war, dass, obwohl der Win2k8-Server% SYSTEMROOT% \ system32 als Teil des Pfads hatte, keine Programme irgendetwas in C: \ Windows \ system32 "sehen" konnten. Das Installationsprogramm verwendet icacls.exe während der Init-Routine in hohem Maße. Da mein Weg verkorkst war, hat der Installateur bombardiert.

Nachdem ich C: \ Windows \ system32 explizit zur Umgebungsvariablen "Pfad" des SYSTEMS hinzugefügt und das Installationsprogramm als Administrator erneut ausgeführt hatte, funktionierte alles einwandfrei.

Kennzeichen
quelle
0

Dieses Problem hat mit Schreibrechten für Ordner zu tun. Erstellen Sie den Ordner / die Daten in PostgreSQL \ 9.2 und erteilen Sie dem Benutzer die volle Berechtigung. Versuchen Sie es erneut.

user37408
quelle