Postgresql 9.2 Gọi tên miền địa phương không hợp lệ trên Ubuntu 12.04


9

Hôm nay tôi đã cài đặt Postgresql 9.2 trên Ubuntu chính xác thông qua apt.postgresql.org - tất cả đều tương đối không đau cho đến khi tôi bị kẹt trong một lỗi "tên miền địa phương không hợp lệ: 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"

Tôi đã chạy locale-gen it_IT.utf8mặc dù, và trên thực tế:

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

Nhật ký dường như không có bất kỳ thông tin có ý nghĩa nào về lý do tại sao người đăng bài không nhận ra it_IT.utf8 ... bạn có thể giúp gì không?

Câu trả lời:


20

Nếu PostgreQuery chưa được khởi động lại sau khi ngôn ngữ mới được tạo, đó sẽ là lý do. service postgresql restartnên đủ.

Điều này có lẽ là do cách các ngôn ngữ được triển khai trong Linux libc. Các địa phương mới không được nhập liền mạch vào môi trường của các quy trình đã chạy.


Đây là giải pháp tàn bạo ít hơn nhiều so với của tôi :)
giorgiga

0

local-gen đã không làm việc trong trường hợp của tôi.

Tôi đã cài đặt miền địa phương bị thiếu với điều này:

dpkg-reconfigure locales

Sau đó, nó hiển thị trong locale -a:

locale -a

Và sau đó khởi động lại postgresql:

service postgresql restart
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.