11

PostgreSQL 9.1 を使用しています。デフォルトとして UTF8 エンコーディングを適用しようとしています。

これが私がやっていることです。

service postgresql initdb -E 'UTF-8' --lc-collate='en_US.UTF-8' --lc-ctype=locale='en_US.UTF-8';

初期化は問題なく進みますが、

プロンプトの a\lで詳細が表示されます。psql

                         List of databases
   Name    |  Owner   |Encoding  | Collate | Ctype |   Access privileges   
-----------+----------+----------+---------+-------+-----------------------
  postgres | postgres | LATIN1 | en_US | en_US| 

UTF-8エンコーディングが適用されないのはなぜですか?

4

2 に答える 2

14

OS のランレベル スクリプトを介して initdb を呼び出しているようです。このスクリプトは、パラメーターを渡さない可能性があります。initdb を直接実行してみることをお勧めします。root として開始し、データベースの OS ユーザー アカウントが postgres であると仮定して、次の手順を実行する必要があります。

mkdir <your data dir>
chown postgres <your data dir>
su postgres
initdb --pgdata=<your data dir> -E 'UTF-8' --lc-collate='en_US.UTF-8' --lc-ctype='en_US.UTF-8'
于 2012-08-05T08:10:46.640 に答える