Postgresql启动失败:“致命:postmaster在启动过程中变成了multithreading”

试图启动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。

我遵循迈克尔的build议。 现在的语言环境值是:

 $ 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" 

但是错误依然存在。

我GOOGLE了错误信息,看看是否有人遇到这个问题,但没有看到一个解决scheme。

您的区域设置错误。

您将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