hello foo bar Saba note | PostgreSQLで文字コードの設定

PostgreSQLで文字コードの設定

2019.11.9 (土)

日本語を扱えるようにするため文字コードの設定をします。設定項目は以下になります。

  • Encoding
  • Collate
  • Ctype

インストール時には環境によっていろいろなデフォルトの状態になっています。日本語の場合はこういう状態にしてあげるとよいです。

  • Encoding : UTF8
  • Collate : ja_JP.UTF-8
  • Ctype : ja_JP.UTF-8

文字コードの設定

私の環境では\lで確認してみると以下のような状態でした。

postgres=> \l
                                     List of databases
    Name     |     Owner     | Encoding | Collate | Ctype |        Access privileges        
-------------+---------------+----------+---------+-------+---------------------------------
 lara-osk-db | postgres      | UTF8     | C       | C     | 
 postgres    | xxxxxxxxxxxxx | UTF8     | C       | C     | 
 template0   | xxxxxxxxxxxxx | UTF8     | C       | C     | =c/xxxxxxxxxxxxx               +
             |               |          |         |       | xxxxxxxxxxxxx=CTc/xxxxxxxxxxxxx
 template1   | xxxxxxxxxxxxx | UTF8     | C       | C     | =c/xxxxxxxxxxxxx               +
             |               |          |         |       | xxxxxxxxxxxxx=CTc/xxxxxxxxxxxxx
(4 rows)

あまりよろしい状態ではないので、文字コードの変更をします。どっちにしろ日本語しか扱わないので、テンプレートを変更します。template1からデータベースを作成しているのでtemplate1の文字コードを変更します。

削除します。

#postgres=> DROP DATABASE template1;

ERROR: must be owner of database template1というエラーが出る場合は、template1のオーナー権限で実行します。