WEB開発備忘録

pgbouncerのインストールメモ / CentOS66

PostgreSQLのコネクションプーラー、「pgbouncer」をcentos66でインストール・設定した際のメモ書きです。
pgbouncer

あらかじめlibeventをインストールしておきます。

[prompt] # yum install libevent-devel

以下よりRPMファイルを入手し、インストールします。
http://yum.postgresql.org/

[prompt] # wget http://yum.postgresql.org/9.4/redhat/rhel-5-x86_64/pgbouncer-1.6.1-1.rhel5.x86_64.rpm
[prompt] # wget http://yum.postgresql.org/9.4/redhat/rhel-5-x86_64/pgbouncer-debuginfo-1.6.1-1.rhel5.x86_64.rpm

[prompt] # rpm -ivh pgbouncer-1.6.1-1.rhel5.x86_64.rpm
[prompt] # rpm -ivh pgbouncer-debuginfo-1.6.1-1.rhel5.x86_64.rpm

ログファイルが無いから作成しておきます。

[prompt] # touch /var/log/pgbouncer/pgbouncer.log
[prompt] # chown -R pgbouncer.pgbouncer /var/log/pgbouncer/
pgbouncerの設定

設定ファイルは「/etc/pgbouncer/pgbouncer.ini」です。
各項目についての詳細は「こちら
とりあえず起動するのに必要な設定を以下に抜粋します。

[prompt] # vim /etc/pgbouncer/pgbouncer.ini
-------
# 接続するDB名をdatabasesディレクティブに
[databases]
DB名 = host=ホスト名 dbname=DB名

# DBユーザー認証タイプをpg_hba.confの設定に合わせて
auth_type = md5

# 以下のpgbouncer経由でpostgresqlに接続するDBユーザーリストを作成する
auth_file = /etc/pgbouncer/userlist.txt

設定ファイル内の「auth_file」に指定されていた「 /etc/pgbouncer/userlist.txt」には
実際に接続するpostgresqlユーザーのリストを作成します。
ダブルクォートでユーザー名とパスワードを囲って1行ずつ記述します。

[prompt] # vim /etc/pgbouncer/userlist.txt
-----
"接続するDBユーザー" "接続するDBユーザーのパスワード"
起動/自動起動設定

起動スクリプトはすでに置かれているはずですのでserviceコマンドで起動します。
起動に成功したらchkconfigで自動起動設定しておきましょう。

[prompt] # service pgbouncer start
[prompt] # chkconfig pgbouncer on
接続確認

コマンドラインインターフェイスpsqlを使って、pgbouncer経由で接続してみます。
portはデフォルトの設定ファイル(/etc/pgbouncer/pgbouncer.ini)では「6432」になっています。
portを6432に指定して起動してみましょう。

[prompt] # psql -U DBユーザー名 -h DBホスト -p 6432 -d DB名

DBユーザー名は「/etc/pgbouncer/userlist.txt」に記述したユーザー
DBホスト名/DB名は「/etc/pgbouncer/pgbouncer.ini」の「databases」ディレクティブで記述した情報である必要があります。

接続出来たらOK。pgbouncerが無事インストール出来ています。