PostgreSQLでの運用
adiaryをPostgreSQLで運用する場合には adiary.conf.cgi を次のように書き換えます。
# 擬似データベースの場合 #<$DB = loadpm('DB_pseudo', "<@data_dir>db/")> ←コメントアウト #PostgreSQL の場合(データベース名、ユーザー名、パスワード) <$DB = loadpm('DB_pg', 'database=adiary', 'adiary', 'test', 1.connection_pool)> ↑有効にする
データベースの文字コードと運用時の文字コードを一致させるように注意してください。
ローカル以外のPostgreSQLに接続する場合
database=adiary の部分を次のように書き換えます。
<$DB = loadpm('DB_pg', 'database=adiary;host=mysql.db-net.tdl', (略))> <$DB = loadpm('DB_pg', 'database=adiary;port=12345',(略))> <$DB = loadpm('DB_pg', 'database=adiary;host=10.45.67.89;port=12345',(略))>
コロン「":"」ではなくセミコロン「";"」です。ご注意ください。
環境設定メモ。
- PostgreSQL をインストールします。
- DBI、DBD::Pg をインストールします。
- データベースを初期化(実行ユーザーがデータベースのsuper user。root不可)
最近のディストリビューションはデーモンを起動すれば勝手に作成してくれます。
標準の文字コードを指定する場合は次のようにします。pgsql~$ initdb /data/directory pgsql~$ initdb /data/directory --locale=ja_JP.eucJP
- スーパーユーザー名と同一のデータベースを作成します。
pgsql~$ createdb pgsql
- コンソールに入ります。
pgsql~$ psql [database name] [user name]
- コンソール上で、pgsql ユーザーにパスワードを設定します。
pgsql=# ALTER USER pgsql ENCRYPTED PASSWORD 'password';
- 一度コンソールを脱出し、データベースディレクトリの pg_hba.conf を編集します。
変更前)local all all trust 変更後)local all all md5
trust となっている部分はすべて md5 に変更する(そうしないとパスワード未承認でつながってしまう)。 - 変更したら、PostgreSQL デーモンを再起動します。
- 再びコンソールに入ります
pgsql~$ psql pgsql pgsql
- adiary用のユーザーとデータベースを作成します。
pgsql=# CREATE USER adiary ENCRYPTED PASSWORD 'password'; pgsql=# CREATE DATABASE adiary OWNER=adiary ENCODING 'EUC-JP';
コマンドのメモ
データベース一覧(文字コード付)
pgsql~$ psql -l
困ったときのマニュアル