Назад | Перейти на главную страницу

Postgresql не работает при запуске: «FATAL: postmaster стал многопоточным во время запуска»

Пытаюсь запустить 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