我使用默认选项安装了postgresql-8.4包。一切正常,但是我似乎无法创建 unicode 数据库:
-- This doesn't work
createdb test1 --encoding UNICODE
-- This works
createdb test2
Run Code Online (Sandbox Code Playgroud)
错误信息,
createdb: database creation failed: ERROR: new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII)
Run Code Online (Sandbox Code Playgroud)
有点令人费解,因为(afaik)我没有使用模板来创建新的数据库,还是出于某种原因隐式地引用了默认的“postgres”数据库?
或者我可能缺少.conf文件中的设置?
小智 13
它所指的模板是template1,如果您不指定另一个模板,则会隐式使用它。
最快的解决方法是template0使用createdb --template=template0.
您可能希望删除并使用更合理的语言环境重新初始化整个集群。您可能已将操作系统设置为默认使用 C 语言环境。您可以通过以下步骤重新初始化数据库系统:
sudo pg_dropcluster --stop 8.4 main
sudo pg_createcluster --locale=en_US.utf8 --start 8.4 main
Run Code Online (Sandbox Code Playgroud)
当然,使用您喜欢的任何语言环境。
| 归档时间: |
|
| 查看次数: |
16020 次 |
| 最近记录: |