-PR-
解決済み

initdbの文字コードと違う文字コードでDB作成

  • すぐに回答を!
  • 質問No.6825563
  • 閲覧数2789
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 64% (11/17)

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を作成する方法はないのでしょうか?
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル8

ベストアンサー率 74% (29/39)

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

postgres=# CREATE DATABASE test WITH TEMPLATE = template0 ENCODING = 'UTF-8' LC_COLLATE = 'C' LC_CTYPE = 'C';
CREATE DATABASE
お礼コメント
miyamura200000

お礼率 64% (11/17)

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

助かりました。
投稿日時 - 2011-07-07 10:54:04
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル12

ベストアンサー率 52% (202/385)

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

http://hollyhock.s26.xrea.com/html/server/database/install/postgresql84.html
お礼コメント
miyamura200000

お礼率 64% (11/17)

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

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

postgresを再起動する程度の停止は問題なのですが、なんとかその程度の停止時間で
なんとかしたいと考えております。
投稿日時 - 2011-06-22 09:13:03


このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

-PR-

ピックアップ

-PR-
ページ先頭へ