Postgresql 9.2 “nama lokal tidak valid” di Ubuntu 12.04

9

Hari ini saya menginstal Postgresql 9.2 di Ubuntu dengan tepat melalui apt.postgresql.org - semua relatif tidak menyakitkan sampai saya terjebak dalam kesalahan "nama lokal tidak valid: it_IT.utf8" kesalahan:

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"

Saya memang lari locale-gen it_IT.utf8, dan pada kenyataannya:

root@ubuntu:/tmp# locale -a
C
C.UTF-8
en_GB.utf8
en_US.utf8
it_IT.utf8
POSIX

Log tampaknya tidak memiliki informasi yang berarti tentang mengapa postgres tidak mengenalinya_IT.utf8 ... dapatkah Anda membantu?

giorgiga
sumber

Jawaban:

20

Jika PostgreSQL belum dimulai ulang setelah lokal baru dibuat, itu akan menjadi alasannya. service postgresql restartharus cukup.

Ini mungkin karena bagaimana lokal diimplementasikan di Linux libc. Lokal baru tidak dapat diimpor mulus ke lingkungan proses yang sudah berjalan.

Daniel Vérité
sumber
Ini adalah solusi yang jauh lebih brutal daripada milik saya :)
giorgiga
0

local-gen tidak bekerja dalam kasus saya.

Saya menginstal lokal yang hilang dengan ini:

dpkg-reconfigure locales

Kemudian ditampilkan di locale -a:

locale -a

Dan kemudian restart postgresql:

service postgresql restart
Wadih M.
sumber