前面写了一篇文章简单描述了下PGBouncer,有兴趣的话可以看下:http://www.jb51.cc/article/p-akvwrxxw-bdu.html
这篇文章介绍PGBouncer的安装以及一些基础的配置,这里使用源码编译安装。
环境:虚拟机Centos6.6,已安装好postgresql9.4.1
首先要下载pgbouncer,下载地址:https://pgbouncer.github.io/downloads/
这里我下载的是当前最新版本pgbouncer-1.6.1.tar.gz,下载后上传到linux。
PGBouncer的安装还是相当简单的,可以在安装目录阅读REDME文件,有安装流程介绍:
这里需要注意一点是,需要安装libevent与libevent-devel包,否则会报如下编译错误:
checking for libevent... configure: error: not found,cannot proceed
这里我使用yum直接安装libevent-devel,会自动安装相关的依赖包,还是比较方便的:
yum install -y libevent-devel
重新编译安装,安装目录为/usr/local/pgbouncer
./configure --prefix=/usr/local/pgbouncer --with-libevent=libevent-prefix
make
make install
ok安装完成。
计划以udbac用户运行pgbouncer,需进行如下配置:
创建/usr/local/pgbouncer/udbac目录用来存放相关配置文件,并授权给用户udbac。
cd /usr/local/pgbouncer
mkdir udbac
chown -R udbac udbac
chmod 0700 udbac
拷贝pgbouncer配置文件:
su udbac
cp /usr/local/pgbouncer/share/doc/pgbouncer/pgbouncer.ini /usr/local/pgbouncer/udbac/
cp /usr/local/pgbouncer/share/doc/pgbouncer/userlist.txt /usr/local/pgbouncer/udbac/
配置pgbouncer.ini
[databases]
pb_udbac = host=127.0.0.1 port=5432 user=udbac password=udbac dbname=udbac
[pgbouncer]
logfile = /usr/local/pgbouncer/udbac/pgbouncer.log
pidfile = /usr/local/pgbouncer/udbac/pgbouncer.pid
listen_addr = *
listen_port = 6432
auth_type = md5
auth_file = /usr/local/pgbouncer/udbac/userlist.txt
admin_users = pb_admin
stats_users = pb_stats
pool_mode = session
server_reset_query = DISCARD ALL
server_check_query = select 1
max_client_conn = 100
default_pool_size = 20
配置userlist.txt:
"udbac" "md5b2703c100ff6b49ce21eb67f874e51a1"
"pb_admin" "udbac"
"pb_stats" "udbac"
其中udbac是后端数据库账户及密码,pb_amdin是登录pgbouncer控制台的账户,pb_stats是只读查看pgbouncer状态的用户。
udbac的密码为MD5加密,所以需要到postgresql的pg_shadow表中获取下udbac密码的加密结果。
配置完成后,可以启动pgbouncer了。
pgbouncer -d /usr/local/pgbouncer/udbac/pgbouncer.ini
测试连接,注意防火墙请打开6432端口:
登录pgbouncer控制台: