Postgresql 9.2 «неверное имя локали» в Ubuntu 12.04


9

Сегодня я установил Postgresql 9.2 в Ubuntu точно через apt.postgresql.org - все было относительно безболезненно, пока я не застрял в ошибке «неверное имя локали: it_IT.utf8»:

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"

Я бежал, locale-gen it_IT.utf8хотя и на самом деле:

root@ubuntu:/tmp# locale -a
C
C.UTF-8
en_GB.utf8
en_US.utf8
it_IT.utf8
POSIX

Журналы, похоже, не содержат какой-либо значимой информации о том, почему postgres не распознает it_IT.utf8 ... вы можете помочь?

Ответы:


20

Если PostgreSQL не был перезапущен после создания новой локали, это было бы причиной. service postgresql restartдолжно хватить.

Вероятно, это связано с тем, как локали реализованы в Linux libc. Новые локали не могут быть легко импортированы в среду уже запущенных процессов.


Это гораздо менее жестокое решение, чем мое :)
giorgiga

0

local-gen не работает в моем случае.

Я установил недостающую локаль с этим:

dpkg-reconfigure locales

Тогда это показало в locale -a:

locale -a

А затем перезапустить postgresql:

service postgresql restart
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.