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 に答える