Postgresql 启动失败:“严重错误:postmaster 在启动过程中变为多线程”

Postgresql 启动失败:“严重错误: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。

我听从了 Michael 的建议。现在区域设置值为:

$ 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 搜索了错误信息,看看是否有人遇到过这个问题,但没有找到解决方案。

答案1

您的语言环境设置错误。

您已将LANG其定义为en_US.UTF-8,但其他所有内容均定义为C。这些是相当不同,将它们混合在一起会引起各种奇怪的现象。

按照错误消息提示进行操作:设置LC_ALL为正确的语言环境(并设置其余所有语言环境)。

答案2

我已经通过为“postgres”帐户设置 LC_ALL 解决了运行 Postgres 9.5 和 9.6 的 Mac 的问题。

详情请见https://github.com/PostgresApp/PostgresApp/issues/317#issuecomment-251786830

相关内容