기본 옵션으로 postgresql-8.4 패키지를 설치했습니다 . 모든 것이 잘 작동했지만 유니 코드 데이터베이스를 만들 수는 없습니다.
-- This doesn't work
createdb test1 --encoding UNICODE
-- This works
createdb test2
오류 메시지
createdb: database creation failed: ERROR: new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII)
(afaik) 새 db를 만들기 위해 템플릿을 사용하지 않거나 어떤 이유로 든 기본 “postgres”데이터베이스를 암시 적으로 참조하기 때문에 약간 당혹 스럽습니다.
아니면 .conf
파일 의 설정이 누락 되었습니까?
답변
참조하는 template1
템플릿은입니다. 다른 템플릿을 지정하지 않으면 암시 적으로 사용됩니다.
가장 빠른 해결 방법은을 template0
사용하여 대신 데이터베이스를 작성 하는 것 createdb --template=template0
입니다.
보다 합리적인 로케일로 전체 클러스터를 삭제하고 다시 초기화 할 수 있습니다. 운영 체제에서 기본적으로 C 로캘을 사용하도록 설정했을 것입니다. 다음 단계에 따라 데이터베이스 시스템을 다시 초기화 할 수 있습니다.
sudo pg_dropcluster --stop 8.4 main
sudo pg_createcluster --locale=en_US.utf8 --start 8.4 main
물론 원하는 로케일을 사용하십시오.
답변
클러스터를 만들기 전에 로캘을 구성해야 할 수도 있습니다.
export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
locale-gen en_US.UTF-8
dpkg-reconfigure locales
답변
나는 당신이 의미하는 것 같아요 :
createdb test42 --encoding utf-8
그것은 당신이 원하는 것을해야합니다.