PostgreSQL: Inicjalizacja klastra bazy danych nie powiodła się

15

Zarówno C:\PostgreSQLi C:\PostgreSQL\datamieć postgresużytkownika z pełnym dostępem i uprawnieniami administratora.

Uruchomiłem postgresql-9.1.2-1-windows.exe od użytkownika postgres jako administrator. CelC:\PostgreSQL

Za każdym razem, gdy próbuję, pojawia się komunikat „Inicjalizacja klastra bazy danych nie powiodła się”.

pytania

  • Czy można uruchamiać wszystko bez usługi Windows?
  • Czy istnieje obejście, które należy zainstalować jako usługę systemu Windows?

Próbuję skonfigurować PostGIS do pracy z GeoDjango.

Byłem w stanie ręcznie zainstalować PostGIS. Nowy w PostgreSQL i mam kryzys zaufania do tego wszystkiego. Po raz pierwszy z MySQL do PostgreSQL.


Odpowiednie dane wyjściowe dziennika z 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

Propozycje?

Larry Eitel
źródło
zobacz dziennik instalacji (powinien być gdzieś na dysku, prawdopodobnie w% TEMP%)
filiprem
Proszę zobaczyć odpowiednie dane wyjściowe dziennika.
Larry Eitel
Czy użytkownik systemu Windows postgres ma pełne uprawnienia do odczytu i zapisu w C: \ PostgreSQL \ data?
a_horse_w_no_name
Tak, ORAZ zgodnie z sugestią w innym miejscu, nadałem użytkownikom modyfikację uprawnień do tego katalogu.
Larry Eitel
@ LarryEitel: ale „ Nie udało się zapewnić dostępu do katalogu danych (C: \ PostgreSQL \ data) ” wydaje się wskazywać inaczej.
a_horse_w_no_name

Odpowiedzi:

17

Miałem ten sam problem z instalacją 9.1.4 w systemie Windows 7. Udało mi się znaleźć rozwiązanie online, które działało .

Kroki, które wykonałem to:

  1. Odinstaluj PostgreSQL
  2. Usuń użytkownika postgres, jeśli nadal istnieje.

    net user postgres /delete
  3. Utwórz użytkownika postgres z hasłem, które możesz zapamiętać

    net user /add postgres <password>
  4. Dodaj użytkownika postgres do grupy Administratorzy

    net localgroup administrators postgres /add
  5. Dodaj użytkownika postgres do grupy Użytkownicy zaawansowani

    net localgroup "power users" postgres /add
  6. Uruchom okno poleceń jako użytkownik postgres

    runas /user:postgres cmd.exe
  7. Uruchom plik instalacyjny z poziomu okna poleceń.

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

    To powinno uruchomić instalację pomyślnie.

  8. Usuń użytkownika postgres z grupy Administratorzy.

    net localgroup administrators postgres /delete
Imraan
źródło
Dziękuję za zwrotną informację. Niestety od tego czasu przeniosłem ten projekt na Mongodb. W tej chwili nie jestem w stanie potwierdzić twojej sugestii.
Larry Eitel,
Chcę potwierdzić, że rozwiązanie zadziałało dla mnie. Konfiguracja: Postgres 9.1 64-bitowy i PostGIS 2.0.1 x64
Chris,
1
Jest to dobrze znany problem z ponowną instalacją PostgreSQL działającego jako usługa, a ja osobiście natknąłem się na sytuację, której dotyczy ta odpowiedź. Instalator pozostawia konto po usunięciu lub aktualizacji, ale druga instalacja nie uwzględnia tego; wynikająca z tego rozbieżność poświadczeń między instalacjami powoduje spustoszenie. Najczęstszą odpowiedzią jest ta, którą daje Imraan; odinstaluj, usuń naruszające konto, a następnie zainstaluj ponownie.
Avery Payne,
@AveryPayne: alternatywnie: pamiętaj poprawne hasło do konta usługi Postgres. Zainstalowałem Postgres dużo na systemach, na których był już zainstalowany i nigdy nie miałem problemu z istniejącym kontem usługi. Można jednak poprawić brzmienie w instalatorze (w wersji 9.2 Postgres nie używa już jawnego konta btw)
a_horse_w_na_nazwa
Pamiętaj, że dla kroku 4 administratorszależy od ustawień regionalnych. Na przykład w PT-BR tak jest administradores. I w kroku 5 "power users"jest "usuários avançados".
GuiRitter,
1

W moim przypadku (jak widziałem z pliku postgresql.log w folderze% temp% systemu Windows) było to spowodowane tym, że instalator nie mógł znaleźć pliku doskey.exe, mimo że ścieżka do folderu c: \ windows \ system32 została podana w pliku ścieżka zmiennej środowiska Windows.
Więc otworzyłem wiersz polecenia, wpisałem set PATH=%PATH%;c:\windows\system32i uruchomiłem instalator z samego wiersza polecenia. Zadziałało! :)

Nav
źródło
1

Żadne z powyższych nie działało dla mnie. Nie wykorzystałem postgresu.

Więc wszystko usunąłem / odinstalowałem. Ran cmd jako administrator.

Następnie uruchomił instalator z wiersza poleceń (jako administrator) i wybrał zupełnie nową lokalizację dla katalogu danych.

Udało mi się ponownie zainstalować postgres, po pół dnia jiggery pokery.

Nim Chimpsky
źródło
Zrobiłem to i nadal nie działało dla mnie.
EKanadily
1

Miałem ten sam komunikat o błędzie podczas próby instalacji 9.2.4. Mój problem polegał na tym, że chociaż serwer Win2k8 miał% SYSTEMROOT% \ system32 jako część ścieżki, żaden program nie mógł „zobaczyć” niczego w C: \ Windows \ system32. Instalator intensywnie używa programu icacls.exe podczas procedury inicjowania. Ponieważ moja ścieżka była zepsuta, instalator zbombardował.

Po jawnym dodaniu C: \ Windows \ system32 do zmiennej środowiskowej SYSTEM's Path i ponownym uruchomieniu instalatora jako administrator wszystko działało dobrze.

znak
źródło
0

Ten problem dotyczy uprawnień do zapisu w folderze. Utwórz folder / dane na przykład w PostgreSQL \ 9.2 i daj pełne uprawnienia użytkownikowi. Spróbuj ponownie zainstalować.

użytkownik37408
źródło