Ubuntu 12.04上的Postgresql 9.2“无效的语言环境名称”


9

今天,我通过apt.postgresql.org在Ubuntu上精确安装了Postgresql 9.2-直到我被困在“无效的语言环境名称: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.utf8 ...您能帮上忙吗?

Answers:


20

如果在创建新的语言环境后尚未重新启动PostgreSQL,这就是原因。service postgresql restart应该足够了。

大概是由于在Linux中如何实现语言环境libc。新的语言环境不会无缝导入到已经运行的进程的环境中。


这比我的解决方案少得多:)
giorgiga

0

local-gen 在我的情况下不起作用。

我用以下方法安装了缺少的语言环境:

dpkg-reconfigure locales

然后显示在locale -a

locale -a

然后重启postgresql:

service postgresql restart
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.