PostgreSQL: Не вдалося ініціалізувати кластер бази даних


15

Як C:\PostgreSQLі C:\PostgreSQL\dataу postgresкористувача з повним доступом і правами адміністратора.

Я запустив postgresql-9.1.2-1-windows.exe від користувача postgres як адміністратор. ЦільC:\PostgreSQL

Щоразу, коли я намагаюся, я отримую "Не вдалося ініціалізувати кластер бази даних".

Запитання

  • Чи добре запускати все, що не є службою Windows?
  • Чи існує обхід, щоб встановити як службу Windows?

Я намагаюся налаштувати PostGIS для роботи з GeoDjango.

Мені вдалося встановити PostGIS вручну. Новачок у PostgreSQL, і у мене виникає криза впевненості у всьому цьому. Перехід з MySQL в PostgreSQL вперше.


Відповідний журнал виводиться з 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

Пропозиції?


дивіться встановити журнал (він повинен бути десь на диску, ймовірно, у% TEMP%)
filiprem

Будь ласка, дивіться відповідний вихід журналу.
Ларрі Ейтель

Є чи в Postgres для Windows користувачів мають повні права на читання і запис на C: \ PostgreSQL \ Data?
a_horse_with_no_name

Так, І за пропозицією в іншому місці, я дав користувачам Модифікувати дозволи в цій каталозі.
Ларрі Ейтел

@LarryEitel: але " Не вдалося забезпечити доступ до каталогу даних (C: \ PostgreSQL \ data) ", схоже, вказує на інше.
a_horse_with_no_name

Відповіді:


17

У мене була така ж проблема, встановивши 9.1.4 на Windows 7. Мені вдалося знайти рішення в Інтернеті, яке спрацювало .

Наступні кроки:

  1. Видаліть PostgreSQL
  2. Видаліть користувача postgres, якщо він все ще існує.

    net user postgres /delete
  3. Створіть користувача postgres з паролем, який ви можете запам'ятати

    net user /add postgres <password>
  4. Додайте користувача postgres до групи Адміністратори

    net localgroup administrators postgres /add
  5. Додайте користувача postgres до групи Power Users

    net localgroup "power users" postgres /add
  6. Запустіть вікно команд як користувач postgres

    runas /user:postgres cmd.exe
  7. Запустіть інсталяційний файл у вікні команди.

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

    Це повинно запустити інсталяцію успішно.

  8. Видаліть користувача postgres із групи Адміністратори.

    net localgroup administrators postgres /delete

Дякую за відгук. На жаль, я з цього часу переніс цей проект на Mongodb. Наразі я не в змозі підтвердити вашу пропозицію.
Ларрі Ейтель

Хочу підтвердити, що рішення працювало на мене. Налаштування: Postgres 9,1 64 біт та PostGIS 2.0.1 x64
Кріс

1
Це добре відома проблема з перевстановленням PostgreSQL, який працює як сервіс, і я особисто зіткнувся з ситуацією, на яку ця відповідь стосується. Інсталятор залишає після себе обліковий запис після видалення або оновлення, але друга установка не враховує це; виникаюча невідповідність між установками створює хаос. Найпоширеніша відповідь - та, яку дає Імраан; видаліть, видаліть обліковий запис порушника та повторно встановіть.
Avery Payne

@AveryPayne: альтернативно: запам’ятайте правильний пароль для облікового запису послуги postgres. Я багато встановив Postgres в системах, де він уже встановлений і ніколи не мав проблем із існуючим обліковим записом служби. Формулювання в інсталяторі могло бути вдосконалено (хоча 9.2 Postgres більше не використовує явного облікового запису btw)
a_horse_with_no_name

Майте на увазі, що для кроку 4 administratorsце залежить від місцевості. Наприклад, у PT-BR це administradores. І, на кроці 5, "power users"є "usuários avançados".
GuiRitter

1

У моєму випадку (як я бачив із файлу postgresql.log у папці% temp% Windows), це було через те, що інсталятор не зміг знайти doskey.exe, хоча шлях до папки c: \ windows \ system32 був заданий у середовище змінний шлях Windows.
Тому я відкрив командний рядок, набрав set PATH=%PATH%;c:\windows\system32та запустив інсталятор із командного рядка. Це спрацювало! :)


1

Ніщо з перерахованого вище не працювало для мене. Постгресів у мене не було.

Тож я все видалив / видалив. Ран cmd як адміністратор.

Потім запустив інсталятор з командного рядка (як адміністратор) і вибрав абсолютно нове місце для каталогу даних.

Зараз я успішно перевстановив постгреси після південного покеру на джиггери.


Я це зробив і досі не працював для мене.
Е.Канаділі

1

У мене було те саме повідомлення про помилку при спробі встановлення 9.2.4. Моя проблема полягала в тому, що, хоча сервер Win2k8 мав% SYSTEMROOT% \ system32 як частину шляху, жодна програма не могла "бачити" нічого в C: \ Windows \ system32. Інсталятор активно використовує icacls.exe під час програми init. Оскільки мій шлях був перекручений, інсталятор вибухнув.

Після того, як я явно додав C: \ Windows \ system32 до змінної середовища SYSTEM's Path і запустив інсталятор як адміністратор, все працювало нормально.


0

Ця проблема пов'язана з дозволом на запис у папку. Наприклад, створіть папку / дані в PostgreSQL \ 9.2 та надайте повний дозвіл користувачеві. Спробуйте знову встановити.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.