- Notifications
You must be signed in to change notification settings - Fork518
lightweight connection pooler for PostgreSQL
pgbouncer/pgbouncer
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Lightweight connection pooler for PostgreSQL.
Homepage:https://www.pgbouncer.org/
Sources, bug tracking:https://github.com/pgbouncer/pgbouncer
PgBouncer depends on few things to get compiled:
- GNU Make 3.81+
- Libevent 2.0+
- pkg-config
- OpenSSL 1.0.1+ for TLS support
- (optional)c-ares as alternative to Libevent's evdns
- (optional) LDAP libraries
- (optional) PAM libraries
When dependencies are installed just run:
$ ./configure --prefix=/usr/local$ make$ make install
If you are building from Git, or are building for Windows, please seeseparate build instructions below.
PgBouncer does host name lookups at connect time instead of just onceat configuration load time. This requires an asynchronous DNSimplementation. The following table shows supported backends andtheir probing order:
backend | parallel | EDNS0 (1) | /etc/hosts | SOA lookup (2) | note |
---|---|---|---|---|---|
c-ares | yes | yes | yes | yes | IPv6+CNAME buggy in <=1.10 |
evdns, libevent 2.x | yes | no | yes | no | does not check /etc/hosts updates |
getaddrinfo_a, glibc 2.9+ | yes | yes (3) | yes | no | N/A on non-glibc |
getaddrinfo, libc | no | yes (3) | yes | no | requires pthreads |
- EDNS0 is required to have more than 8 addresses behind one host name.
- SOA lookup is needed to re-check host names on zone serial change.
- To enable EDNS0, add
options edns0
to/etc/resolv.conf
.
c-ares is the most fully-featured implementation and is recommendedfor most uses and binary packaging (if a sufficiently new version isavailable). Libevent's built-in evdns is also suitable for many uses,with the listed restrictions. The other backends are mostly legacyoptions at this point and don't receive much testing anymore.
By default, c-ares is used if it can be found. Its use can be forcedwithconfigure --with-cares
or disabled with--without-cares
. Ifc-ares is not used (not found or disabled), then Libevent is used. Specify--disable-evdns
to disable the use of Libevent's evdns and fall back to alibc-based implementation.
To enable PAM authentication,./configure
has a flag--with-pam
(default value is no). When compiled with PAM support, a new globalauthentication typepam
is available to validate users through PAM.
To enable LDAP authentication,./configure
has a flag--with-ldap
(default value is no). When compiled with LDAP support, a new globalauthentication typeldap
is available to validate users through LDAP.
To enable systemd integration, use theconfigure
option--with-systemd
. This allows usingType=notify
(orType=notify-reload
ifyou are using systemd 253 or later) as well as socket activation. Seeetc/pgbouncer.service
andetc/pgbouncer.socket
for examples.
Building PgBouncer from Git requires that you generate the header andconfiguration files before you can runconfigure
:
$ git clone https://github.com/pgbouncer/pgbouncer.git$ cd pgbouncer$ ./autogen.sh$ ./configure$ make$ make install
All files will be installed under/usr/local
by default. You cansupply one or more command-line options toconfigure
. Run./configure --help
to list the available options and the environmentvariables that customizes the configuration.
Additional packages required: autoconf, automake, libtool, pandoc
See theREADME.md
file in the test directory on how to run the tests.
The only supported build environment on Windows is MinGW. Cygwin andVisual $ANYTHING are not supported.
To build on MinGW, do the usual:
$ ./configure$ make
If cross-compiling from Unix:
$ ./configure --host=i586-mingw32msvc
The LDAP build option is currently not supported on Windows.
Running from the command line goes as usual, except that the-d
(daemonize),-R
(reboot), and-u
(switch user) switches will not work.
To run PgBouncer as a Windows service, you need to configure theservice_name
parameter to set a name for the service. Then:
$ pgbouncer -regservice config.ini
To uninstall the service:
$ pgbouncer -unregservice config.ini
To use the Windows event log, setsyslog = 1
in the configuration file.But before that, you need to registerpgbevent.dll
:
$ regsvr32 pgbevent.dll
To unregister it, do:
$ regsvr32 /u pgbevent.dll
About
lightweight connection pooler for PostgreSQL
Topics
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Uh oh!
There was an error while loading.Please reload this page.