今天,我通过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_IT.utf8 …你能帮忙吗?
如果在创build新语言环境之后PostgreSQL没有重新启动,那就是原因。 service postgresql restart应该就足够了。
这大概是由于在Linux libc如何实现语言环境。 新的语言环境不能无缝地导入到已经运行的进程的环境中。