1、下载pgbouncer程序包和libevent依赖包

wget https://github.com/libevent/libevent/releases/download/release-2.1.11-stable/libevent-2.1.11-stable.tar.gz  //pgbouncer需要用到libevent依赖包
wget http://www.pgbouncer.org/downloads/files/1.12.0/pgbouncer-1.12.0.tar.gz

2、安装编译所需的环境依赖

 yum install gcc gcc-c++ make openssl-devel

3、解压并编译安装

tar -xf libevent-2.1.11-stable.tar.gz
tar -xf pgbouncer-1.12.0.tar.gz

4、编译安装libevent

 ./configure --prefix=/usr/local/libevent
make -j 2
make install

5、配置环境变量

echo "export PKG_CONFIG_PATH=/usr/local/libevent/lib/pkgconfig" >> ~/.bashrc
cat ~/.bashrc
source ~/.bashrc

9、授权postgres用户访问libevent-2.1.so.7权限

setfacl -Rm u:postgres:rwx /usr/

10、创建软连接

ln -s /usr/local/libevent/lib/libevent-2.1.so.7 /usr/lib64/libevent-2.1.so.7

11、编译安装pgbouncer

./configure --prefix=/usr/local/pgbouncer/
make -j 2
make install

12、创建pgbouncer.ini配置文件

cat /etc/pgbouncer/pgbouncer.ini
[databases]
postgres = host=127.0.0.1 port=5432 dbname=postgres [pgbouncer]
logfile = /var/log/pgbouncer/pgbouncer.log
pidfile = /var/run/pgbouncer/pgbouncer.pid
listen_addr = 10.15.150.41
listen_port = 6432
unix_socket_dir = /var/run/postgresql
auth_type = md5
auth_file = /etc/pgbouncer/userlist.txt
admin_users = postgres
ignore_startup_parameters = extra_float_digits,geqo pool_mode = session
server_reset_query = DISCARD ALL
max_client_conn = 10000
default_pool_size = 1000
reserve_pool_size = 30
reserve_pool_timeout = 5
max_db_connections = 5000
pkt_buf = 8192

 13、创建用户名及密码认证文件,确保仅postgres用户可以访问,权限600

cat /etc/pgbouncer/userlist.txt
"postgres" "P2poRLYZ8"

 14、配置开机自启服务,由systemctl管理,创建pgbouncer.service文件

cat /etc/systemd/system/pgbouncer.service
[Unit]
Description=pgBouncer connection pooling for PostgreSQL
After=syslog.target network.target [Service]
Type=forking User=postgres
Group=postgres PermissionsStartOnly=true
ExecStartPre=-/bin/mkdir -p /var/run/pgbouncer /var/log/pgbouncer
ExecStartPre=/bin/chown -R postgres:postgres /var/run/pgbouncer /var/log/pgbouncer
ExecStart=/usr/local/pgbouncer/bin/pgbouncer -d /etc/pgbouncer/pgbouncer.ini
ExecReload=/bin/kill -SIGHUP $MAINPID
PIDFile=/var/run/pgbouncer/pgbouncer.pid LimitNOFILE=100000 [Install]
WantedBy=multi-user.target

15、填写可执行权限

chmod +x /etc/systemd/system/pgbouncer.service

16、启动服务

systemctl start pgbouncer

17、查询启动状态systemctl status pgbouncer

18、加入开机启动项

systemctl enable pgbouncer

  

  

最新文章

  1. DataSnap控件TDSServerClass属性LifeCycle生命周期管理(From李维)
  2. 从MySQL 5.5到5.7看复制的演进
  3. 文件管理php代码操作文件
  4. Android 联系人字母排序(仿微信)
  5. HDU 5313 Bipartite Graph (二分图着色,dp)
  6. javascript基础知识--函数定义
  7. SQL server 时间日期函数、类型转换
  8. 开发H5小游戏
  9. ubuntu WiFi: operation not possible due to RF-kill《转载》
  10. MUI 列表页面绑定接口数据
  11. MySQL中的空间扩展
  12. (╭ ̄3 ̄)╭ 小希的迷宫II
  13. 在servlet中跳转问题
  14. CF892.B. Wrath
  15. python制作模块
  16. 【雅思】【写作】【大作文】Discuss both views and give your own opinion
  17. curl不能支持https问题
  18. EditPlus配置Java
  19. Batch Normalization 引出的一系列问题
  20. OSGI企业应用开发(一)OSGI简介

热门文章

  1. [LeetCode] 27. Remove Element 移除元素
  2. centos7 安装mysql5.7(二进制安装)
  3. 2018-2019-2 20162329 《网络对抗技术》Exp9: Web安全基础
  4. PHP中直接使用sql语句
  5. iOS组件化实现方案
  6. 第八节:EF Core连接MySql数据库
  7. freemarker中8个常用的指令
  8. cmd命令和linux命令的区别
  9. 硬件笔记之制作MacOS Mojave U盘USB启动安装盘方法
  10. .NET[C#]使用LINQ从List<T>集合中获取最后N条数据记录的方法有哪些?