Пытаюсь запустить PostgreSQL, но получаю следующую ошибку:
$ pg_ctl -D postgres_data start
server starting
FATAL: postmaster became multithreaded during startup
HINT: Set the LC_ALL environment variable to a valid locale
Моя локаль установлена:
LANG="en_US.UTF-8"
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL="C"
Система - MacOS 10.10.5, версия PostgreSQL - 9.5.0.
Я последовал совету Майкла. Теперь значения локали:
$ locale
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
Но ошибка остается.
Я погуглил сообщение об ошибке, чтобы узнать, сталкивался ли кто-нибудь с этой проблемой, но не нашел решения.
Ваш языковой стандарт установлен неверно.
У тебя есть LANG
определяется как en_US.UTF-8
, но все остальное определяется как C
. Эти довольно разные, и их смешивание вызовет всякие странности.
Сделайте то, что вам сказано в сообщении об ошибке: установите LC_ALL
на правильный языковой стандарт (и установите все остальные тоже).
Я решил проблему для моего Mac, на котором запущены Postgres 9.5 и 9.6, установив LC_ALL для учетной записи postgres.
Смотрите подробности на https://github.com/PostgresApp/PostgresApp/issues/317#issuecomment-251786830