3

我使用 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

4

1 回答 1

2

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

如果您还没有任何数据,最好删除并重新创建服务器。我不确定如何在您的设置中执行此操作,但基本上它应该只是关闭它、删除数据库文件并使用 initdb 重新创建它们的情况。或卸载/重新安装软件包。

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

于 2012-02-13T11:19:27.510 回答