Ошибка установки postgres после начальной загрузки FATAL: неверная последовательность байтов

Я пытаюсь установить Postgres 13 (версия для Windows), но всегда получаю одну и ту же ошибку (часть на испанском языке):

realizando inicializaci ¢ n post-bootstrap ... 2021-04-30 12: 10: 54.935 CEST [1224] FATAL: недопустимая последовательность байтов для кодирования UTF8: 0xbf el procso hijo termin ¢ con c ¢ digo de salida 1 initdb: исключение содержимого каталога ®C: / PostgreSQL13 / data¯

Вызывается Die (не удалось инициализировать кластер базы данных с помощью initdb) ... Не удалось инициализировать кластер базы данных с помощью initdb

Скрипт stderr: программа завершилась с кодом выхода из ошибки

Ошибка в ejecutar C: \ WINDOWS \ System32 \ cscript // NoLogo C: \ PostgreSQL13 / installer / server / initcluster.vbs NT AUTHORITY \ NetworkService postgres **** C: \ Users \ user1 \ AppData \ Local \ Temp / postgresql_installer_b86f3c1062 C : \ PostgreSQL13 C: \ PostgreSQL13 \ data 5432 Английский язык, США 0: Программа завершилась с кодом выхода ошибки. La instalación no pudo finalizar correctiveamente La inicialización del clúster de la base de datos falló.

Пользователь user1 имеет права администратора. Я тоже пробовал установить версию 12 вместо 13, но результат тот же.

Какие-либо предложения?


person Alvaro    schedule 30.04.2021    source источник
comment
У меня нет опыта работы с Windows-версией Postgresql, но вы проверили, что установленная кодовая страница - UTF-8? Windows будет использовать WINDOWS-1252 во многих европейских странах.   -  person kometen    schedule 30.04.2021


Ответы (1)


Это очень вероятно, потому что имя суперпользователя базы данных содержит символы, отличные от ASCII.

Я не знаю точно, как вы устанавливаете PostgreSQL, но это, вероятно, происходит, когда вы запускаете initdb для создания каталога данных (который соответствует сценарию initcluster в вашем сообщении).

Если вы не укажете имя суперпользователя с помощью параметра -U в initdb (обычно используется nae postgres), initdb назовет суперпользователя, как ваш текущий пользователь операционной системы. Если вы работаете в Windows, это имя будет закодировано в кодировке Windows, например Windows-1252. Теперь база данных не знает этого, и когда она создает пользователя базы данных, она использует сами байты этого имени пользователя. Если это неправильно закодированный UTF-8 (чего не будет, если он содержит символы, отличные от ASCII), это вызывает эту ошибку.

Я предлагаю вам войти в Windows с пользователем операционной системы, в имени которого есть все символы ASCII, и повторить попытку.

person Laurenz Albe    schedule 30.04.2021
comment
Привет, Лоренц, я устанавливаю postgres с помощью универсального мастера установки графического интерфейса пользователя (загруженного с сайта Postgre), вхожу в Windows под пользователем с правами администратора, а имя содержит только символы ascii (фактически, все согласные и вокал). - person Alvaro; 04.05.2021
comment
Тогда мое предположение неверно. - person Laurenz Albe; 04.05.2021
comment
Привет снова, Лауренц! Принимая во внимание ваши соображения по поводу имени пользователя и символов ASCII, я попытался снова установить PostgreSQL, изменив пароли для пользователей Windows и пользователей postgre на только согласные символы, и установка сработала. Считаю ошибкой не разрешающий более сложный пароль, но это сработало. Я попытаюсь изменить пароли еще раз, и надеюсь, что это все еще работает. - person Alvaro; 06.05.2021
comment
Интересно - я думаю, что беспокоить может только пароль пользователя базы данных, и даже это меня удивляет. Я уверен, что позже вы сможете изменить пароль пользователя базы данных на все, что захотите. - person Laurenz Albe; 06.05.2021