Today I installed Postgresql 9.2 on Ubuntu precise via apt.postgresql.org – all was relatively painless until I got stuck in a "invalid locale name: it_IT.utf8" error:

root@ubuntu:/tmp# sudo -u postgres psql -Xc "CREATE DATABASE test TEMPLATE template0 ENCODING 'utf8' LC_CTYPE='it_IT.utf8'"
ERROR:  invalid locale name: "it_IT.utf8"

I did run locale-gen it_IT.utf8 though, and in fact:

root@ubuntu:/tmp# locale -a

Logs don't seem to have any meaningful information on why postgres isn't recognizing it_IT.utf8... can you help?


If PostgreSQL hasn't been restarted after the new locale has been created, that would be the reason. service postgresql restart should suffice.

This is presumably due to how locales are implemented in Linux libc. The new locales don't get seamlessly imported into the environment of already running processes.

  • This is much less brutal solution than mine :) – giorgiga Mar 27 '13 at 16:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.