In diesem Schritt konfigurieren Sie PgBouncer für Connection Pooling (Verbindungsbündelung) und verbinden sich über PgBouncer mit Ihrer PostgreSQL-Datenbank.
-
Eine PgBouncer-Konfigurationsdatei erstellen:
Erstellen Sie zunächst ein Verzeichnis, in dem die PgBouncer-Konfigurationsdatei gespeichert werden soll:
mkdir -p ~/project/pgbouncer
cd ~/project/pgbouncer
Erstellen Sie dann die Konfigurationsdatei pgbouncer.ini
mit nano
:
nano pgbouncer.ini
Fügen Sie die folgende Konfiguration in die Datei pgbouncer.ini
ein:
[databases]
mydb = host=127.0.0.1 port=5432 dbname=postgres user=postgres
[pgbouncer]
listen_addr = 127.0.0.1
listen_port = 6432
user = postgres
pool_mode = transaction
server_reset_query = DISCARD ALL
default_pool_size = 20
max_client_conn = 100
[databases]
definiert die Datenbankverbindung. mydb
ist ein Alias.
[pgbouncer]
konfiguriert PgBouncer. listen_addr
und listen_port
sind die Adresse und der Port, an dem PgBouncer lauscht. pool_mode
ist auf transaction
gesetzt.
Drücken Sie Ctrl+O
, um die Datei zu speichern, und dann Ctrl+X
, um nano
zu verlassen.
-
Eine Benutzerlistendatei erstellen:
PgBouncer benötigt eine Benutzerlistendatei zur Authentifizierung. Erstellen Sie userlist.txt
:
nano userlist.txt
Fügen Sie die folgende Zeile hinzu und ersetzen Sie labex_password
durch das tatsächliche Passwort für den Benutzer postgres
(Sie können es mit sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'labex_password';"
) setzen:
"postgres" "labex_password"
Drücken Sie Ctrl+O
, um die Datei zu speichern, und dann Ctrl+X
, um nano
zu verlassen.
-
PgBouncer starten:
Starten Sie PgBouncer mit der Konfigurationsdatei:
pgbouncer pgbouncer.ini
Lassen Sie dieses Terminal geöffnet. Öffnen Sie ein neues Terminal für die nächsten Schritte.
-
Über PgBouncer mit PostgreSQL verbinden:
Verbinden Sie sich im neuen Terminal über PgBouncer mit PostgreSQL mit psql
:
psql -h 127.0.0.1 -p 6432 -U postgres -d postgres
Geben Sie das Passwort ein, das Sie in userlist.txt
festgelegt haben. Wenn dies erfolgreich ist, sehen Sie die psql
-Eingabeaufforderung.
psql (13.3, server 1.18.0)
Type "help" for help.
postgres=#