Ubuntu
Ubuntu 12.04 上的 Postgresql 9.2“無效的語言環境名稱”
今天,我通過 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 …你能幫忙嗎?
如果在創建新的語言環境後沒有重新啟動 PostgreSQL,那就是原因。
service postgresql restart
應該足夠了。這大概是由於 Linux 中的語言環境是如何實現的
libc
。新的語言環境不會無縫地導入到已經執行的程序的環境中。
local-gen
在我的情況下不起作用。我用這個安裝了缺少的語言環境:
dpkg-reconfigure locales
然後它顯示在
locale -a
:locale -a
然後重新啟動 postgresql:
service postgresql restart