LINUX.ORG.RU

postgres: database creation failed


0

0

Не создается БД. Ошибка:

postgres@host:~$ createdb -e -E UTF8 -O friday friday_db
CREATE DATABASE friday_db OWNER friday ENCODING 'UTF8';
createdb: database creation failed: ERROR:  encoding UTF8 does not match server's locale en_US
DETAIL:  The server's LC_CTYPE setting requires encoding LATIN1.

en_US.utf8 сгенрирована. Пробовал и dpkg-reconfigure locales, и вручную перегенерить - не помогает.

Посмотрел окружение демона - LC_CTYPE=en_US. Прописал в :

LANG = 'en_US.utf8'
LANGUAGE = 'en_US.utf8'
LC_CTYPE = 'en_US.utf8'

Перезапустил - LANG и LANGUAGE изменились, а  LC_CTYPE все равно en_US!

Debian etch; postgresql-8.3  из backports

★★★

Ответ на: комментарий от friday

пересоздай кластер с нужной локалью, предварительно забекапив его конфигурацию из /etc и данные
если нужно (запускать от root'а):
$ pg_dropcluster --stop 8.3 main
$ LANG=en_US.utf8 pg_createcluster --start-conf auto --start 8.3 main
$ pg_lsclusters
после последней команды должно напечатать что-то типа:
Version Cluster   Port Status Owner    Data directory                     Log file
8.3     main      5432 online postgres /var/lib/postgresql/8.3/main       /var/log/postgresql/postgresql-8.3-main.log

ps: имхо lc_ctype прописывается намертво в базу, что логично
так как от него зависят индексы, видимо данные в логе транзакций и т.д.

pps: вместо установки переменной окружения в LANG=en_US.utf8 pg_createcluster ...
можно указать непосредственно параметрами pg_createcluster

Eshkin_kot ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.