Linux 下安装pgbouncer

简介:

系统环境准备

1 创建用户:
sudo groupadd postgres
sudo useradd -g postgres postgres

2 创建目录并赋权
sudo mkdir -p /opt/pgbouncer
sudo mkdir -p /export/pgbouncer_data
sudo chown -R postgres: /export/pgbouncer

3 安装依赖包
sudo apt-get install openssl
sudo apt-get install libssl-dev

4 安装libevent
wget http://www.monkey.org/~provos/libevent-2.0.22.tar.gz
tar -zxvf libevent-2.0.22.tar.gz
cd libevent-2.0.22
sudo ./configure --prefix=/usr
make
make install

安装pgbouncer

官网:https://pgbouncer.github.io/

1 先去官网下载pgbouncer源码安装包,下载地址:https://pgbouncer.github.io/downloads/
2 解压安装包:tar -zxvf pgbouncer-1.7.2.tar.gz
3 源码安装:
$ ./configure --prefix=/opt/pgbouncer --with-libevent=libevent-prefix
$ make
$ make install

配置文件

所有的配置文件都在/export/pgbouncer_data下

1 配置pgbouncer.ini文件
[databases]
* = host=along port=5432 user=along password=along pool_size=20

[pgbouncer]
listen_port = 6432
listen_addr = 127.0.0.1
;unix_socket_dir = ''
;user = postgres
auth_type = md5
auth_file = /export/pgbouncer_data/users.txt
logfile = /export/pgbouncer_data/pgbouncer.log
pidfile = /export/pgbouncer_data/pgbouncer.pid
admin_users = postgres
stats_users = mon
pool_mode = session
client_idle_timeout=10
server_idle_timeout=1800
idle_transaction_timeout=10
client_login_timeout=10
server_reset_query = DEALLOCATE ALL;
server_check_query = select 1
server_check_delay = 10
reserve_pool_size = 5
reserve_pool_timeout = 5
max_client_conn = 50
default_pool_size = 20
log_connections = 0
log_disconnections = 0
log_pooler_errors = 1
ignore_startup_parameters = extra_float_digits

2 配置users.txt文件
-- ”用户名“ ”密码“
"along" "along"
“postgres” "postgres"

 3 配置ip_limit文件
192.0.0.0/8

4 配置环境变量
export PATH=/opt/pg10/bin:/opt/pgbouncer/bin:$PATH
source .bashrc

启动pgbouncer

postgres@along:/export/pgbouncer_data$ pgbouncer -d /export/pgbouncer_data/pgbouncer.ini 
2017-07-20 21:10:55.952 11381 LOG File descriptor limit: 1024 (H:65536), max_client_conn: 50, max fds possible: 60
2017-07-20 21:10:55.953 11381 FATAL @src/main.c:893 in function main(): unix socket is in use, cannot continue
原因:
在/tmp目录下已经有端口5432的socket
postgres@along:/export/pgbouncer_data$ ll /tmp |grep -i .s.PG
srwxrwxrwx  1 postgres postgres      0 7月  20 21:14 .s.PGSQL.5432=
-rw-------  1 postgres postgres     47 7月  20 21:14 .s.PGSQL.5432.lock

解决方法:
修改pgbouncer.ini 配置文件下的listen_port = 5432 为 6432

postgres@along:/export/pgbouncer_data$ pgbouncer -d /export/pgbouncer_data/pgbouncer.ini 
2017-07-20 21:20:56.546 11637 LOG File descriptor limit: 1024 (H:65536), max_client_conn: 50, max fds possible: 60
postgres@along:/export/pgbouncer_data$ ll /tmp |grep -i .s.PG
srwxrwxrwx  1 postgres postgres      0 7月  20 21:14 .s.PGSQL.5432=
-rw-------  1 postgres postgres     47 7月  20 21:14 .s.PGSQL.5432.lock
srwxrwxrwx  1 postgres postgres      0 7月  20 21:20 .s.PGSQL.6432=

pgbouncer启动成功

登录pgbouncer控制台

postgres@along:/export/pgbouncer_data$ psql -h 127.0.0.1 -Upostgres -p 6432 pgbouncer
Password for user postgres: 
psql (10beta1, server 1.7.2/bouncer)
Type "help" for help.

pgbouncer=#
目录
相关文章
|
30天前
|
安全 关系型数据库 MySQL
Linux(CentOS6)安装MySQL5.6
Linux(CentOS 6)系统上安装MySQL 5.6版本的详细步骤,包括准备数据存放目录、创建用户、下载安装包、初始化数据库、配置服务脚本、设置环境变量等操作。
102 1
|
18天前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
28天前
|
缓存 NoSQL Linux
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
|
17天前
|
Ubuntu Linux Shell
Linux系统命令 安装和文件相关命令
本文档详细介绍了Linux系统中的常用命令,包括软件安装卸载命令如`dpkg`和`apt-get`,压缩与解压命令如`gzip`、`bzip2`和`xz`,以及`tar`命令用于打包和解包。此外还介绍了文件分割命令`split`,文件操作命令如`cat`、`head`、`tail`、`more`、`less`等,管道命令和`wc`、`grep`、`find`、`cut`、`sort`、`uniq`、`diff`等实用工具。最后,文档还讲解了文件属性相关的命令如`chmod`、`chown`、`chgrp`以及创建硬链接和软链接的`ln`命令。
|
29天前
|
关系型数据库 MySQL Linux
在Linux中,新安装mysql后怎样提升mysql的安全级别?
在Linux中,新安装mysql后怎样提升mysql的安全级别?
|
23天前
|
Linux TensorFlow 算法框架/工具
在Linux上安装其他版本的cmake 或 升级cmake
在Linux上安装其他版本的cmake 或 升级cmake
35 2
|
23天前
|
人工智能 Linux 开发工具
Linux安装Taiyi stable-diffusion-webui
Linux安装Taiyi stable-diffusion-webui
|
24天前
|
Ubuntu Linux 虚拟化
安装Windows Linux 子系统的方法:适用于windows 11 版本
本文提供了在Windows 11系统上安装Linux子系统(WSL)的详细步骤,包括启用子系统和虚拟化功能、从Microsoft Store安装Linux发行版、设置WSL默认版本、安装WSL2补丁,以及完成Ubuntu的首次安装设置。
65 2
|
29天前
|
Ubuntu Linux 开发工具
【事件中心 Azure Event Hub】在Linux环境中(Ubuntu)安装Logstash的简易步骤及配置连接到Event Hub
【事件中心 Azure Event Hub】在Linux环境中(Ubuntu)安装Logstash的简易步骤及配置连接到Event Hub
|
28天前
|
关系型数据库 MySQL Linux
Linux环境安装MySQL8.0.36使用rpm包安装,安装顺序是什么?
【8月更文挑战第23天】Linux环境安装MySQL8.0.36使用rpm包安装,安装顺序是什么?
136 1