Postgres жалуется на кодировку при попытке создать новую базу данных - PullRequest
3 голосов
/ 13 февраля 2012

Я установил postgres на своей виртуальной машине, используя Vagrant и Chef, и когда я пытаюсь создать базу данных, я продолжаю получать эту ошибку.Не уверен, где искать.Пользователь my_user был создан без проблем.

CREATE DATABASE db_mydb OWNER my_user ENCODING 'UTF8' TEMPLATE template1;
createdb: database creation failed: ERROR:  encoding UTF8 does not match locale en_US
DETAIL:  The chosen LC_CTYPE setting requires encoding LATIN1.

Первоначально для виртуальной машины было установлено значение en_US, и я обновил ее до en_US.utf8

1 Ответ

2 голосов
/ 13 февраля 2012

Когда вы создаете сервер postgresql, кодировка по умолчанию берется из вашей локали.Если вы изменили локаль на UTF8 позже, сервер все равно будет инициализирован на latin1.

Если у вас еще нет данных, вероятно, лучше удалить и воссоздать сервер.Я не уверен, как именно это сделать в вашей настройке, но в основном это просто случай его выключения, удаления файлов базы данных и использования initdb для их воссоздания.Или удалите / переустановите пакет.

Если вы не хотите перестраивать сервер, вы можете создать базу данных, используя TEMPLATE template0, что позволит вам указать другую кодировку для сервера по умолчанию.

...