PostgreSQL: inizializzazione del cluster di database non riuscita


15

Entrambi C:\PostgreSQLe C:\PostgreSQL\datahanno postgresutenti con pieno accesso e diritti di amministratore.

Ho eseguito postgresql-9.1.2-1-windows.exe dall'utente postgres come amministratore. BersaglioC:\PostgreSQL

Ogni volta che provo, ottengo "L'inizializzazione del cluster di database non è riuscita."

Domande

  • È corretto eseguire tutto senza essere un servizio Windows?
  • Esiste una soluzione alternativa da installare come servizio di Windows?

Sto cercando di configurare PostGIS per lavorare con GeoDjango.

Sono stato in grado di installare manualmente PostGIS. Nuovo per PostgreSQL e sto avendo una crisi di fiducia su tutto questo. Venendo da MySQL a PostgreSQL per la prima volta.


Output del registro pertinente da 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

Suggerimenti?


vedi il registro di installazione (dovrebbe essere da qualche parte sul disco, probabilmente in% TEMP%)
filiprem

Vedere l'output del registro pertinente.
Larry Eitel,

L' utente di Windows Postgres ha i privilegi di lettura e scrittura completi su C: \ PostgreSQL \ data?
a_horse_with_no_name

Sì, e per un suggerimento altrove, ho dato agli utenti le autorizzazioni di modifica a quella directory.
Larry Eitel,

@LarryEitel: ma " Impossibile assicurarsi che la directory dei dati sia accessibile (C: \ PostgreSQL \ data) " sembra indicare diversamente.
a_horse_with_no_name

Risposte:


17

Ho avuto lo stesso problema installando 9.1.4 su Windows 7. Sono riuscito a trovare una soluzione online che ha funzionato .

I passaggi che ho seguito sono:

  1. Disinstallare PostgreSQL
  2. Elimina l'utente postgres se esiste ancora.

    net user postgres /delete
  3. Crea l'utente postgres con una password che ricordi

    net user /add postgres <password>
  4. Aggiungi l'utente postgres al gruppo Amministratori

    net localgroup administrators postgres /add
  5. Aggiungi l'utente postgres al gruppo Power Users

    net localgroup "power users" postgres /add
  6. Esegui una finestra di comando come utente postgres

    runas /user:postgres cmd.exe
  7. Esegui il file di installazione dalla finestra dei comandi.

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

    Questo dovrebbe eseguire l'installazione correttamente.

  8. Rimuovi l'utente postgres dal gruppo Amministratori.

    net localgroup administrators postgres /delete

Grazie per il feedback. Sfortunatamente, da allora ho spostato questo progetto su Mongodb. Al momento non sono in grado di confermare il tuo suggerimento.
Larry Eitel,

Voglio confermare che la soluzione ha funzionato per me. Installazione: Postgres 9.1 64 bit e PostGIS 2.0.1 x64
Chris,

1
Questo è un problema ben noto con la reinstallazione di PostgreSQL che è in esecuzione come servizio e ho incontrato personalmente la situazione che questa risposta affronta. Il programma di installazione lascia un account al momento della rimozione o dell'aggiornamento, ma la seconda installazione non tiene conto di ciò; la risultante disparità credenziale tra le installazioni crea scompiglio. La risposta più comune è quella che Imraan dà; disinstallare, rimuovere l'account offensivo, quindi reinstallare.
Avery Payne,

@AveryPayne: in alternativa: ricordare la password corretta per l'account del servizio Postgres. Ho installato molto Postgres su sistemi in cui era già installato e non ho mai avuto problemi con un account di servizio esistente. La formulazione
nell'installer

Tieni presente che, per il passaggio 4, administratorsdipende dalle impostazioni locali. Ad esempio, in PT-BR lo è administradores. E, al punto 5, "power users"è "usuários avançados".
GuiRitter il

1

Nel mio caso (come ho visto dal file postgresql.log nella cartella% temp% di Windows), è stato perché il programma di installazione non è stato in grado di trovare doskey.exe anche se il percorso alla cartella c: \ windows \ system32 è stato indicato nella percorso variabile d'ambiente di windows.
Quindi ho aperto un prompt dei comandi, ho digitato set PATH=%PATH%;c:\windows\system32ed eseguito il programma di installazione dal prompt dei comandi stesso. Ha funzionato! :)


1

Nessuna delle precedenti ha funzionato per me. Postgres non mi serviva.

Quindi ho cancellato / disinstallato tutto. Ha funzionato cmd come amministratore.

Quindi ha eseguito il programma di installazione dalla riga di comando (come admin) e ha selezionato un percorso completamente nuovo per la directory dei dati.

Ora ho reinstallato con successo postgres, dopo mezza giornata di scherzi buffi.


1

Ho avuto lo stesso messaggio di errore durante il tentativo di installare 9.2.4. Il mio problema era perché anche se il server Win2k8 aveva% SYSTEMROOT% \ system32 come parte del percorso, nessun programma poteva "vedere" nulla in C: \ Windows \ system32. Il programma di installazione utilizza pesantemente icacls.exe durante la routine init. Da quando il mio percorso è stato rovinato, l'installatore ha bombardato.

Una volta aggiunto esplicitamente C: \ Windows \ system32 alla variabile d'ambiente Path del SISTEMA e rieseguito il programma di installazione come amministratore, tutto ha funzionato bene.


0

Questo problema ha a che fare con l'autorizzazione alla scrittura nella cartella. Creare la cartella / i dati in PostgreSQL \ 9.2 per esempio, e dare piena autorizzazione all'utente. Prova a reinstallare di nuovo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.