Dans cette étape, vous allez configurer PgBouncer pour le pooling de connexions ( connection pooling ) et vous connecter à votre base de données PostgreSQL via celui-ci.
-
Créer un fichier de configuration PgBouncer :
Tout d'abord, créez un répertoire pour stocker le fichier de configuration PgBouncer :
mkdir -p ~/project/pgbouncer
cd ~/project/pgbouncer
Ensuite, créez le fichier de configuration pgbouncer.ini
en utilisant nano
:
nano pgbouncer.ini
Collez la configuration suivante dans le fichier pgbouncer.ini
:
[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]
définit la connexion à la base de données. mydb
est un alias.
[pgbouncer]
configure PgBouncer. listen_addr
et listen_port
sont l'adresse et le port sur lesquels PgBouncer écoute. pool_mode
est défini sur transaction
.
Appuyez sur Ctrl+O
pour enregistrer le fichier, puis sur Ctrl+X
pour quitter nano
.
-
Créer un fichier de liste d'utilisateurs :
PgBouncer a besoin d'un fichier de liste d'utilisateurs pour l'authentification. Créez userlist.txt
:
nano userlist.txt
Ajoutez la ligne suivante, en remplaçant labex_password
par le mot de passe réel de l'utilisateur postgres
(vous pouvez le définir en utilisant sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'labex_password';"
) :
"postgres" "labex_password"
Appuyez sur Ctrl+O
pour enregistrer le fichier, puis sur Ctrl+X
pour quitter nano
.
-
Démarrer PgBouncer :
Démarrez PgBouncer en utilisant le fichier de configuration :
pgbouncer pgbouncer.ini
Gardez ce terminal ouvert. Ouvrez un nouveau terminal pour les étapes suivantes.
-
Se connecter à PostgreSQL via PgBouncer :
Dans le nouveau terminal, connectez-vous à PostgreSQL via PgBouncer en utilisant psql
:
psql -h 127.0.0.1 -p 6432 -U postgres -d postgres
Entrez le mot de passe que vous avez défini dans userlist.txt
. Si la connexion réussit, vous verrez l'invite psql
.
psql (13.3, server 1.18.0)
Type "help" for help.
postgres=#