dポイントプレゼントキャンペーン実施中!

postgres9.0.4でEUCでinitした環境があります。
initdb --encoding=EUC_JP

そこにUTF8のDBを作成したいのですが、以下のようなエラーがでます。
psql -U postgres
postgres=# CREATE DATABASE dbname
postgres-# WITH ENCODING='UTF8'
postgres-# OWNER=dbowner
postgres-# CONNECTION LIMIT=-1;
ERROR: encoding UTF8 does not match locale ja_JP.eucJP
DETAIL: The chosen LC_CTYPE setting requires encoding EUC_JP.

既に運用が始まっているEUCのDBが稼動している状態です。
EUCで初期化したところに後からUTF8のDBを作成する方法はないのでしょうか?

A 回答 (2件)

initdb コマンドでデータベースクラスタを再作成する必要はありません。



postgres=# CREATE DATABASE test WITH TEMPLATE = template0 ENCODING = 'UTF-8' LC_COLLATE = 'C' LC_CTYPE = 'C';
CREATE DATABASE
    • good
    • 0
この回答へのお礼

ありがとうございます。
LC_COLLATE = 'C' LC_CTYPE = 'C'を指定すれば出来るんですね。
TEMPLATE = template0の指定までは調べられたんですが、それではうまくいかなくて・・・・

助かりました。

お礼日時:2011/07/07 10:54

rc.confに「--no-locale」がないとエラーになるそうです。



http://hollyhock.s26.xrea.com/html/server/databa …
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。

initdbをしなおさないといけないということですね。
DBバックアップ→initdb→DBリストアという流れですと、DBの停止時間が長いため
出来れば避けたいと考えております。この手は最終手段と思っております。

postgresを再起動する程度の停止は問題なのですが、なんとかその程度の停止時間で
なんとかしたいと考えております。

お礼日時:2011/06/22 09:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!