Ошибка инициализации кластера базы данных Win 10 Postgresql 11

Я получил новый ноутбук от Dell (XPS 15) с Windows 10 Pro. У меня всегда одна и та же проблема. Во время установки postgres «Проблема с запуском шага после установки. Установка может завершиться неправильно. Сбой инициализации кластера базы данных». .

я пробовал много решений из прошлых тем: установить postgres не в файлы программы, создать пользователя с именем postgres с полным доступом к каталогу postgress, как описано здесь https://www.youtube.com/watch?v=pS_zWDDDSe0 Проверено на наличие новых вин-обновлений Отключен Брандмауэр и Антивирус Windows.

Ошибка запуска cscript //NoLogo "C:\develop\postgres/installer/server/initcluster.vbs" "NT AUTHORITY\NetworkService" "postgres" "****" "C:\develop\postgres" "C:\develop \postgres\data" 5432 "ПО УМОЛЧАНИЮ" 0: Программа завершилась с ошибкой кода выхода Проблема с запуском шага после установки. Установка может завершиться неправильно Сбой инициализации кластера базы данных. [14:03:49] Удалить каталог временных скриптов... Создание ярлыков меню... Выполнение cscript //NoLogo "C:\develop\postgres\installer\server\createshortcuts_clt.vbs" "PostgreSQL 11" "C:\ develop\postgres" Код выхода скрипта: 0

ИЗМЕНИТЬ ЖУРНАЛ ОШИБОК

Executing batch file 'radAD31B.bat'...
The program "postgres" was found by "C:/develop/postgres/bin/initdb.exe" but was not the same version as initdb.

person Hades85    schedule 11.02.2019    source источник


Ответы (4)


Я только что боролся с этим в течение нескольких часов, поэтому я публикую это для всех, кто оказывается здесь.

Сначала все, что я смог найти, это два сообщения об ошибках в списке рассылки pgsql-bugs:

ОШИБКА №15856: программа "postgres" была обнаружена "initdb", но была отличается от версии initdb.

ОШИБКА №15970: ошибка инициализации базы данных — initdb.exe и postgres не совпадают версии< /а>

Специфические симптомы:

The program "postgres" was found by ".../initdb.exe" but was not the same version as initdb.

и хотя версии совпадают, вы получаете это:

C:\Program Files\PostgreSQL\11\bin>postgres -V
WARNING:  01000: could not determine encoding for locale
"<some encoding>.utf8": codeset is "CPutf8"

Если это ваши симптомы, проблема в том, что в настройках вашего региона/языка установлено использование UTF-8 (бета-настройка). Это вызывает проблемы со многими программами, и PostgreSQL — одна из них. Отключите это и переустановите, и все будет в порядке.

Скриншот настроек региона UTF8

person simon    schedule 11.09.2019
comment
Как вы это обнаружили? Я бы потратил сутки! Спасибо большое!!!! - person IamIC; 17.10.2019
comment
@ Эндрю - тогда у тебя не было такой проблемы :) - person simon; 25.09.2020

Выполните следующие действия, чтобы избежать этой ошибки

  1. Удалить PostgreSQL
  2. Удалить, если у вас есть пользователь postgres
  3. Щелкните правой кнопкой мыши Мой компьютер/Этот компьютер и выберите Управление, выберите Локальные пользователи и группы, затем Пользователи Новый пользователь введите имя пользователя как postgres и пароль (любой) и нажмите кнопку Создать.
  4. Теперь щелкните правой кнопкой мыши пользователя postgres и выберите свойства, щелкните вкладку Участник, а затем нажмите кнопку Добавить. в разделе Дополнительно и новом диалоговом окне, открытом для групп, нажмите Найти сейчас и выберите Администраторы, нажмите кнопку ОК.
  5. Теперь откройте командную строку / cmd
  6. здесь введите runas /user:postgres cmd.exe и нажмите Enter
  7. cd путь к загруженной папке Postgresql введите
  8. Введите postgresql-x.x.x-x-windows.exe (здесь x означает выпуск, основную и дополнительную версии).
  9. Теперь повторите шаг 4 и удалите группу Администраторы и добавьте Опытные пользователи.
person Atif Zia    schedule 15.07.2020
comment
Текущие версии Postgres не требуют специального postgres пользователя Windows для их установки. - person a_horse_with_no_name; 15.07.2020
comment
@a_horse_with_no_name Если произошла вышеуказанная ошибка, мы должны создать пользователя postgres. - person Atif Zia; 16.07.2020
comment
Нет, вам не нужно - person a_horse_with_no_name; 16.07.2020
comment
@a_horse_with_no_name Это решение работает для меня, если у вас есть какое-либо решение, поделитесь им здесь. - person Atif Zia; 16.07.2020
comment
@a_horse_with_no_name, похоже, не тот случай, мне нужно было возиться с этим в версии 12 (добавил мои шаги в качестве ответа, хотя, как и Атиф, все еще создает пользователя вручную). Хотелось бы узнать альтернативное более простое решение! - person Andrew; 24.09.2020
comment
@Andrew: я не создал пользователя postgres Windows, так как я думаю, что Postgres 9.2 или что-то в этом роде. Но тогда я никогда не использую установщик, я использую ZIP-пакеты и запускаю initdb вручную - person a_horse_with_no_name; 24.09.2020
comment
@a_horse_with_no_name ах, интересно, попробую в следующий раз, я думаю, с Windows вам все равно придется создавать службу вручную? - person Andrew; 24.09.2020
comment
@Andrew: да, см., например. здесь: stackoverflow.com/a/26441939/330315 - person a_horse_with_no_name; 24.09.2020

Только что возникла эта проблема с postgres 12, мой метод решения похож на метод Atif, но использует командную строку:

  1. Удалить PostgreSQL

  2. Удалите пользователя postgres, если он все еще существует:

    чистый пользователь postgres/delete

  3. Создайте пользователя postgres с паролем, который вы можете запомнить:

    net user / добавить postgres [пароль]

  4. Добавьте пользователя postgres в группу администраторов:

    сетевые администраторы локальной группы postgres /add

  5. ПРОПУСТИТЕ это, так как группа больше не существует в Win 10, и пользователи по умолчанию должны иметь необходимые разрешения. Добавьте пользователя postgres в группу Power Users.

  6. Запустите командное окно от имени пользователя postgres: (откроется новое командное окно):

    runas /пользователь:postgres cmd.exe

  7. скопируйте установочный файл в место, доступное этому пользователю, и запустите его, например:

    C:\Download\postgresql-12.4-1-windows-x64.exe

  8. Удалите пользователя postgres из группы администраторов:

    сетевые администраторы локальной группы postgres /delete

Вот и все. Надеюсь, это полезно

person Andrew    schedule 22.09.2020

Я просмотрел доступные решения, но ни одно из них не сработало для меня, поэтому я просто создал нового пользователя на своем рабочем столе Windows 10 и выполнил установку там, и она смогла успешно завершиться.

person sammyhawkrad    schedule 16.09.2020