我使用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
答案 0 :(得分:2)
创建postgresql服务器时,默认编码取自您的语言环境。如果您稍后将语言环境更改为UTF8,则服务器仍将初始化为latin1。
如果您还没有任何数据,最好删除并重新创建服务器。我不确定如何在你的设置上做到这一点,但基本上它只是一个关闭它,删除数据库文件和使用initdb重新创建它们的情况。或者卸载/重新安装软件包。
如果您不想重建服务器,可以使用TEMPLATE template0
创建数据库,这允许您为服务器默认值指定不同的编码。