【PostgreSQL】createdb時におけるencodingエラー

PostgreSQLでcreatedbをしようとしたら下記のようなエラーが出た件。。。

createdb: database creation failed: ERROR: new encoding (EUC_JP) is incompatible with the encoding of the template database (UTF8)
HINT: Use the same encoding as in the template database, or use template0 as template.

原因

原因は、createdb の実行時にデフォルトで選択されるテンプレートDB(templete1)には、initdb した際に指定した文字コード(UTF-8)が登録されている為、 encoding を指定しての別の文字コード(EUC-JP)の登録ができないよ、ということだそうです。

ちなみに 8.1 からの仕様とか。

解決策

文字コード情報が登録されていないテンプレートDB(template0)を指定すればOKだそうです。

createdb --encoding=EUC_JP testdb --template=template0

これで完了。

コメントを残す

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