Не удалось инициализировать кластер базы данных Win 10 Postgresql 11

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

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

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

РЕДАКТИРОВАТЬ ОШИБКУ LOG

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.

10 ответов

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

Изначально все, что я смог найти, это два отчета об ошибках на 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 - одна из них. Отключите это и переустановите, и все будет в порядке.

Если вы когда-либо меняли параметр кодировки кода командной строки в реестре

HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Command Processor \ Autorun

к chcp 65001, chcp 1251 или любому другому, тогда это может быть проблемой.

Возврат значения по умолчанию (пусто) в реестре кодирования командной строки решил проблему в моем случае.

Попробуйте изменить значение реестра на пустое:

HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Command Processor \ Autorun

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

  1. Удалить PostgreSQL
  2. Удалите, если у вас есть пользователь postgres
  3. Щелкните правой кнопкой мыши на Мой компьютер / Этот компьютер и нажмите на Управление GOTO Локальные пользователи и группы, то пользователи нового пользователя введите имя пользователя, как Postgres и пароль (все, что вы хотите) и нажмите на кнопку Создать кнопку.
  4. Теперь щелкните правой кнопкой мыши на Postgres пользователя и нажмите на свойства нажмите на член вкладки, а затем на Add кнопки здесь нажмите на Advanced и новом диалоговом окне открытой для групп нажмите на Find Now и выберите Администраторы нажмите OK кнопку.
  5. Теперь откройте командную строку / cmd
  6. здесь введите runas /user:postgres cmd.exe и нажмите Enter
  7. cd путь к загруженной папке Postgresql введите
  8. postgresql-xxx-x-windows.exe введите (здесь x отражает выпуск, основную и вспомогательную версии).
  9. Теперь повторите шаг 4 и удалите администраторов группы и добавьте опытных пользователей.

Просто небольшое дополнение к ответу от Антона Кудрявцева : Проверьте, что нетAutoranпараметр в реестре:\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Command Processor

Его удаление решило ошибкуThe program "postgres" was found by "C:/Program Files/PostgreSQL/14/bin/initdb.exe" but was not the same version as initdbв моем случае (проверено в установщике Windows 10 x64 и Postgress 14.5 .exe)

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

  1. Удалить PostgreSQL

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

    net user postgres /delete

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

    чистый пользователь / добавить postgres [пароль]

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

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

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

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

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

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

    C:\ Скачать \postgresql-12.4-1-windows-x64.exe

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

    администраторы net localgroup postgres /delete

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

Удаление может не удалить все записи реестра. Вы можете ввести registryв панели задач ищи и открывай Registry Editor.

Перейдите к:

      Computer\HKEY_LOCAL_MACHINE\SOFTWARE

И удалить записи, относящиеся к postgresql.

Та же проблема. Бета-версия UTF-8 не выбрана. Однако это дало мне идею.

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

Успешно установлено с использованием локали по умолчанию.

Вы можете обратиться к моему методу. Я удалил папку pgadmin в C:\Users\nameuser\AppData\Roaming и удалил папку C:\Program Files\PostgreSQL. Затем я удалил postgres и переустановил.

введите сюда описание изображения

Установка PostgreSQL в Windows с помощью установщика EDB умоляет быстрее облысеть. Вы можете запустить PostgreSQL на WSL (подсистема Windows для Linux) и подключиться к ней в Windows!

Откройте Windows Terminal/PowerShell от имени администратора (щелкните правой кнопкой мыши значок «Пуск» в Windows 11 -> Терминал Windows (администратор). Введите:

      wsl --install

Перезагрузите компьютер. После входа в систему Ubuntu будет автоматически установлена, WSL2 и Ubuntu являются стандартными для Windows 11 (см. документацию о том, как выбрать другой дистрибутив и т. д.). Следуйте инструкциям, чтобы ввести желаемое имя пользователя и пароль.

Обновите Убунту:

      sudo apt update && sudo apt upgrade

Установите PostgreSQL:

      sudo apt install postgresql

Дайте пользователю postgres пароль:

      sudo passwd postgres

Запустите службу и откройте оболочку psql:

      sudo service postgresql start && sudo -u postgres psql

Обратите внимание, что созданный вами пароль не является паролем БД для postgres, поэтому, если вы не создадите нового пользователя, вы можете указать его для postgres в оболочке psql:

      ALTER USER postgres PASSWORD 'mypw';

Теперь вы можете установить pgAdmin или использовать свою собственную программу (в «обычной» Windows), чтобы подтвердить, что вы можете подключиться к 127.0.0.1 с портом 5432 (может отличаться) с пользователем postgres и его паролем.

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

Другие вопросы по тегам