■問題

Plesk で作成した PostgreSQL のデータベースが文字化けします。

■原因

作成した PostgreSQL のデータベースの文字コードと、プログラムの文字コードが異なることが原因である場合があります

■解決方法
PostgreSQL のデータベースを作成する際に、プログラムの文字コードと同じ文字コードを指定することで改善される場合があります。しかしながら、Plesk 画面では特定の文字コードを指定し、データベースを作成することはできません。特定の文字コードにてデータベースを作成されたい場合は、SSH のコンソール作業にてデータベースの再作成をすることで対応可能です。

※本作業は、Plesk の標準の設定方法とは異なるため、弊社ではサポートを行うことはできません。専門書等をご確認の上、参考程度にご参照ください。
※本作業は、データベースを一度削除いたしますので、すでに保存されたデータが削除されます。作業を行う場合は、必ずバックアップ等を行った後に、お客様の責にて作業を行ってください。
※必ずデータベースを Plesk より作成後、本作業を行ってください。
※本作業では Plesk と PostgreSQL が同一サーバにインストールされたもので、Pleskから同一サーバ内の PostgreSQL を操作する場合の方法を記載いたします。

PostgreSQL の管理者ユーザ情報を確認

(A-1).Plesk へ admin ユーザにてログインします。
(A-2).[システム]-[サーバ]-[データベースサーバ]-[ローカル PostgreSQL サーバ]-[データベースサーバ](タブ)を選択します。
(A-3).[管理者ログイン名]を確認します。
※管理者パスワードは表示されませんので、設定されたパスワードをあらかじめご用意ください。
(A-4).[データベース](タブ)を選択し、作成されたデータベース名を確認します。

データベースの再作成
ここでは、[管理者ログイン名]を[db_admin]、データベース名を[test_db]と設定され、文字コードを[UTF-8(UNICODE)]に変更する設定例を案内します。

(B-1).ご契約サーバに root ユーザにて SSH を用いてログインします。
(B-2).以下のコマンドを実行し、データベースを削除します。(データベースに保存されたデータが削除されますのでご注意ください。)

dropdb -U db_admin -W test_db


※コマンドを実行する際は[#]を除いて実行してください。
※パスワードが要求されますので、設定されたパスワードを入力してください。

(コマンド実行例)
dropdb -U db_admin -W test_db
Password:
DROP DATABASE


※「DROP DATABASE」と表示されれば削除成功です
(B-3).以下のコマンドを実行し、データベースを再作成します。

# createdb -U db_admin -W -E UNICODE test_db


※コマンドを実行する際は[#]を除いて実行してください。
※パスワードが要求されますので、設定されたパスワードを入力してください。

(コマンド実行例:UTF-8(UNICODE)で作成する場合)
createdb -U db_admin -W -E UNICODE test_db
Password:
CREATE DATABASE


※「CREATE DATABASE」と表示されれば作成成功です
(B-4).Plesk 画面の PhpPgAdmin 等より文字コードが変更されたことを確認してください。

Category: Pleskコントロールパネル
Tags: データベース, Plesk, PostgreSQL, 文字コード, 文字化け