All Projects → pgbouncer → Pgbouncer

pgbouncer / Pgbouncer

Licence: other
lightweight connection pooler for PostgreSQL

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Pgbouncer

Repmgr
A lightweight replication manager for PostgreSQL (Postgres) - latest version 5.2.1 (2020-12-07)
Stars: ✭ 1,207 (-4.43%)
Mutual labels:  postgresql
Bug Tracker Pern Ts
Bug Tracking app with project members support. Made with PERN stack + TypeScript.
Stars: ✭ 79 (-93.75%)
Mutual labels:  postgresql
Gopherus
This tool generates gopher link for exploiting SSRF and gaining RCE in various servers
Stars: ✭ 1,258 (-0.4%)
Mutual labels:  postgresql
Pgcenter
Command-line admin tool for observing and troubleshooting Postgres.
Stars: ✭ 1,217 (-3.64%)
Mutual labels:  postgresql
Sql
MySQL & PostgreSQL pipe
Stars: ✭ 81 (-93.59%)
Mutual labels:  postgresql
Open Bank Mark
A bank simulation application using mainly Clojure, which can be used to end-to-end test and show some graphs.
Stars: ✭ 81 (-93.59%)
Mutual labels:  postgresql
Node Sql Fixtures
SQL fixtures for Node.js in PostgreSQL, MySQL, MariaDB and SQLite
Stars: ✭ 76 (-93.98%)
Mutual labels:  postgresql
Testgres
Testing framework for PostgreSQL and its extensions
Stars: ✭ 85 (-93.27%)
Mutual labels:  postgresql
Pg activity
pg_activity is a top like application for PostgreSQL server activity monitoring.
Stars: ✭ 1,232 (-2.45%)
Mutual labels:  postgresql
Pypi Server
Tornado based server like pypi.python.org. With caching from pypi.
Stars: ✭ 83 (-93.43%)
Mutual labels:  postgresql
Charon
Authorization and authentication service.
Stars: ✭ 79 (-93.75%)
Mutual labels:  postgresql
Agent
The best way to backup and restore your database
Stars: ✭ 80 (-93.67%)
Mutual labels:  postgresql
Chloe
A lightweight and high-performance Object/Relational Mapping(ORM) library for .NET --C#
Stars: ✭ 1,248 (-1.19%)
Mutual labels:  postgresql
Suricatta
High level sql toolkit for clojure (backed by jooq library)
Stars: ✭ 77 (-93.9%)
Mutual labels:  postgresql
Xeus Sql
xeus-sql is a Jupyter kernel for general SQL implementations.
Stars: ✭ 85 (-93.27%)
Mutual labels:  postgresql
Bgworker
Background Worker Processes for PostgreSQL written in Go
Stars: ✭ 77 (-93.9%)
Mutual labels:  postgresql
Pg Anonymizer
Dump anonymized PostgreSQL database with a NodeJS CLI
Stars: ✭ 83 (-93.43%)
Mutual labels:  postgresql
Graphjin
GraphJin - Build APIs in 5 minutes with GraphQL. An instant GraphQL to SQL compiler.
Stars: ✭ 1,264 (+0.08%)
Mutual labels:  postgresql
Gonymizer
Gonymizer: A Tool to Anonymize Sensitive PostgreSQL Data Tables for Use in QA and Testing
Stars: ✭ 85 (-93.27%)
Mutual labels:  postgresql
Twist V2
A book review tool for Leanpub's Markdown Book Format
Stars: ✭ 82 (-93.51%)
Mutual labels:  postgresql

PgBouncer

Lightweight connection pooler for PostgreSQL.

Homepage: https://www.pgbouncer.org/

Sources, bug tracking: https://github.com/pgbouncer/pgbouncer

Building

PgBouncer depends on few things to get compiled:

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 see separate build instructions below.

DNS lookup support

PgBouncer does host name lookups at connect time instead of just once at configuration load time. This requires an asynchronous DNS implementation. The following table shows supported backends and their probing order:

backend parallel EDNS0 (1) /etc/hosts SOA lookup (2) note
c-ares yes yes yes yes IPv6+CNAME buggy in <=1.10
udns yes yes no yes IPv4 only
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
  1. EDNS0 is required to have more than 8 addresses behind one host name.
  2. SOA lookup is needed to re-check host names on zone serial change.
  3. To enable EDNS0, add options edns0 to /etc/resolv.conf.

c-ares is the most fully-featured implementation and is recommended for most uses and binary packaging (if a sufficiently new version is available). Libevent's built-in evdns is also suitable for many uses, with the listed restrictions. The other backends are mostly legacy options 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 forced with configure --with-cares or disabled with --without-cares. If c-ares is not used (not found or disabled), then specify --with-udns to pick udns, else Libevent is used. Specify --disable-evdns to disable the use of Libevent's evdns and fall back to a libc-based implementation.

PAM authentication

To enable PAM authentication, ./configure has a flag --with-pam (default value is no). When compiled with PAM support, a new global authentication type pam is available to validate users through PAM.

systemd integration

To enable systemd integration, use the configure option --with-systemd. This allows using Type=notify service units as well as socket activation. See etc/pgbouncer.service and etc/pgbouncer.socket for examples.

Building from Git

Building PgBouncer from Git requires that you fetch the libusual submodule and generate the header and configuration files before you can run configure:

$ git clone https://github.com/pgbouncer/pgbouncer.git
$ cd pgbouncer
$ git submodule init
$ git submodule update
$ ./autogen.sh
$ ./configure ...
$ make
$ make install

Additional packages required: autoconf, automake, libtool, pandoc

Building on Windows

The only supported build environment on Windows is MinGW. Cygwin and Visual $ANYTHING are not supported.

To build on MinGW, do the usual:

$ ./configure ...
$ make

If cross-compiling from Unix:

$ ./configure --host=i586-mingw32msvc ...

Running 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 the service_name parameter to set name for service. Then:

$ pgbouncer -regservice config.ini

To uninstall service:

$ pgbouncer -unregservice config.ini

To use the Windows event log, set syslog = 1 in the configuration file. But before that you need to register pgbevent.dll:

$ regsvr32 pgbevent.dll

To unregister it, do:

$ regsvr32 /u pgbevent.dll
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].