Ubuntu

Ubuntu 12.04 上的 Postgresql 9.2“無效的語言環境名稱”

  • April 24, 2020

今天,我通過 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

引用自:https://serverfault.com/questions/491237