PostgresSQL8.4 DB作成時に「データベースの生成に失敗しました: ERROR: 符号化方式 EUC_JP がロケール ja_JP.UTF-8 に合いません」対策

PostgreSQLのバージョンが上がったからなのか、それともScientific Linuxだからか分からないがこれまではまったことがないDB作成でハマる。

-bash-4.1$ createdb -E EUC_JP homedb
createdb: データベースの生成に失敗しました: ERROR:  符号化方式 EUC_JP がロケール ja_JP.UTF-8 に合いません
DETAIL:  選択された LC_CTYPE を設定するには、符号化方式 UTF8 である必要があります。
#二回目のトライエンコーディングとlocaleをあわせた
-bash-4.1$ createdb -E EUC_JP --locale=ja_JP.EUC_JP homedb
createdb: データベースの生成に失敗しました: ERROR:  新しい符号化方式(EUC_JP)はテンプレートデータベースの符号化方式(UTF8)と互換性がありません
HINT:  テンプレートデータベースの符号化方式と同じものを使うか、もしくは template0 をテンプレートとして使用してください
#三回目じゃぁtemplate0をテンプレートして使うよ!
-bash-4.1$ createdb -E EUC_JP --locale=ja_JP.EUC_JP homedb --template=template0

うーむ。どうやら8.4からDB作成時のパラメータが増えたようだ。エンコーディングと合わせてlocaleを設定してあげる必要がある。というわけでDBを新規作成する場合は何も手間がかからないUTF-8にするのがおすすめ。これなら他のパラメータはいらない。

カテゴリー: Linux, Scientific Linux パーマリンク

コメントを残す

メールアドレスが公開されることはありません。

Time limit is exhausted. Please reload the CAPTCHA.