Postgresql fails on startup: “FATAL: postmaster became multithreaded during startup”

postgresql

Trying to start PostgreSQL, but get the following error:

$ 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

My locale is set:

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"

System is MacOS 10.10.5, PostgreSQL version is 9.5.0.

I followed Michael's suggestion. Now the locale values are:

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

But the error remains.

I Googled the error message to see if anyone had run into this problem, but did not see a solution.

Best Answer

Your locale is mis-set.

You have LANG defined as en_US.UTF-8, but everything else is defined as C. These are rather different, and mixing them will cause all sorts of weirdness.

Do what the error message told you: set LC_ALL to the correct locale (and set all the rest of them too).