Ubuntu 12.04でのPostgresql 9.2「無効なロケール名」


9

今日私は、apt.postgresql.orgを介してUbuntuにPostgresql 9.2を正確にインストールしました。

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

回答:


20

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

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


これは私のものよりも残忍な解決策ではありません:)
giorgiga '27

0

local-gen 私の場合はうまくいきませんでした。

私はこれで不足しているロケールをインストールしました:

dpkg-reconfigure locales

それからそれは示したlocale -a

locale -a

そして、postgresqlを再起動します。

service postgresql restart
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.