Postgres在尝试创建新数据库时抱怨编码

时间:2012-02-13 04:44:57

标签: postgresql vagrant

我使用Vagrant和Chef在我的VM上安装了postgres,当我尝试创建数据库时,我不断收到此错误。不知道在哪里看。用户'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.

VM最初设置为en_US,我将其更新为en_US.utf8

1 个答案:

答案 0 :(得分:2)

创建postgresql服务器时,默认编码取自您的语言环境。如果您稍后将语言环境更改为UTF8,则服务器仍将初始化为latin1。

如果您还没有任何数据,最好删除并重新创建服务器。我不确定如何在你的设置上做到这一点,但基本上它只是一个关闭它,删除数据库文件和使用initdb重新创建它们的情况。或者卸载/重新安装软件包。

如果您不想重建服务器,可以使用TEMPLATE template0创建数据库,这允许您为服务器默认值指定不同的编码。