Ошибка «Не удалось запустить initdb» (Failed to initialise the database cluster with initdb) возникает на этапе инициализации кластера: установщик не смог создать структуру каталога данных. Чаще всего дело в правах доступа к каталогу или в том, что он не пустой. Точную причину показывает лог установки.
С чего начать
Откройте лог установщика. Под Windows это bitrock_installer.log в каталоге %TEMP% – в нем записана точная строка сбоя initdb. На Linux смотрите вывод инициализации и логи в /var/log/postgresql/:
%TEMP%\bitrock_installer.log
Что проверить
- Каталог данных должен быть пустым. initdb отказывается инициализировать непустую директорию, чтобы не затереть существующие данные. Если PostgreSQL уже ставился по этому пути, очистите или удалите старый каталог данных (убедившись, что в нем нет нужных баз).
- Проверьте права на каталог данных. Под Windows у служебной учетной записи должен быть полный доступ к папке – частый сбой возникает на внешних и несистемных дисках; права выдаются на вкладке «Безопасность» в свойствах папки. Под Linux initdb запускается от пользователя postgres, а не от root:
sudo -u postgres initdb -D /var/lib/pgsql/data
- Убедитесь, что порт 5432 свободен. Если его занял другой экземпляр PostgreSQL, Docker или иная служба, инициализация и запуск завершаются ошибкой – задайте свободный порт при установке.
- Только Windows: проверьте службу «Вторичный вход в систему» (Secondary Logon) – установщик выполняет инициализацию через initcluster.vbs в отдельном контексте пользователя. Также проверьте ассоциацию .vbs в реестре (HKEY_CLASSES_ROOT\.vbs = VBSFile) и что не отключен Windows Script Host.
Ручная инициализация
Если установщик стабильно не проходит этот шаг, откажитесь от автоматической инициализации и выполните initdb вручную из каталога bin, указав пустой каталог данных и локаль. При установке под 1С задается локаль Russian_Russia.1251 с кодировкой UTF8.