Не удалось инициализировать кластер базы данных 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
список рассылки:
ОШИБКА № 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
Выполните следующие действия, чтобы избежать этой ошибки
- Удалить PostgreSQL
- Удалите, если у вас есть пользователь postgres
- Щелкните правой кнопкой мыши на Мой компьютер / Этот компьютер и нажмите на Управление GOTO Локальные пользователи и группы, то пользователи нового пользователя введите имя пользователя, как Postgres и пароль (все, что вы хотите) и нажмите на кнопку Создать кнопку.
- Теперь щелкните правой кнопкой мыши на Postgres пользователя и нажмите на свойства нажмите на член вкладки, а затем на Add кнопки здесь нажмите на Advanced и новом диалоговом окне открытой для групп нажмите на Find Now и выберите Администраторы нажмите OK кнопку.
- Теперь откройте командную строку / cmd
- здесь введите runas /user:postgres cmd.exe и нажмите Enter
- cd путь к загруженной папке Postgresql введите
- postgresql-xxx-x-windows.exe введите (здесь x отражает выпуск, основную и вспомогательную версии).
- Теперь повторите шаг 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, но использует командную строку:
Удалить PostgreSQL
Удалите пользователя postgres, если он еще существует:
net user postgres /delete
Создайте пользователя postgres с паролем, который вы можете запомнить:
чистый пользователь / добавить postgres [пароль]
Добавьте пользователя postgres в группу администраторов:
сетевые администраторы локальной группы postgres /add
ПРОПУСТИТЕ это, поскольку группа больше не существует в win 10, а пользователи по умолчанию должны иметь необходимые разрешения - добавьте пользователя postgres в группу опытных пользователей
Запустите командное окно от имени пользователя postgres: (открывает новое командное окно):
runas / пользователь:postgres cmd.exe
скопируйте установочный файл в место, доступное для этого пользователя, и запустите его, например:
C:\ Скачать \postgresql-12.4-1-windows-x64.exe
Удалите пользователя 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 и выполнил установку, и она смогла успешно завершиться.