web-dev-qa-db-ja.com

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_IT.utf8を認識しない理由に関する意味のある情報がないようです...

8
giorgiga

新しいロケールの作成後にPostgreSQLが再起動されていない場合は、それが原因です。 service postgresql restartで十分です。

これはおそらく、ロケールがLinuxで実装されているためですlibc。新しいロケールは、すでに実行中のプロセスの環境にシームレスにインポートされません。

19
Daniel Vérité