Задание 2: Работа в обычном режиме
В этом разделе мы настроим Pangolin Pooler, подготовим список пользователей, запустим сервис и убедимся в корректной работе пула. Также мы познакомимся с консолью управления инструментом.
Простая настройка
Рассматриваемый в этом задании режим работы Pangolin Pooler унаследован из PgBouncer. Этот режим описан в документации в разделе PgBouncer.
Конфигурационные файлы
Получим список конфигурационных файлов, установленных из пакета:
[student@srv1 ~]$ cd Distr/distributive/
[student@srv1 distributive]$ rpm -qc pangolin-pooler-1.5.6-redos8.0.x86_64
/etc/pangolin-pooler/pangolin-pooler.ini
/etc/pangolin-pooler/userlist.txt
/usr/lib/systemd/system/pangolin-pooler.service
Предназначение этих файлов конфигурации:
pangolin-pooler.ini— основной файл конфигурации;userlist.txt— список пользователей для аутентификации;pangolin-pooler.service— файл настроек юнитаsystemdдля управления сервисом Pangolin Pooler.
Конфигурационный файл pangolin-pooler.ini
Структура файла и суть настроек конфигурации приведена в документации в разделе Конфигурирование (pgbouncer.ini).
Кроме этого, можно воспользоваться справкой man:
[student@srv1 ~]$ sudo -u postgres man -M /opt/pangolin-pooler/share/man/ 5 pangolin-pooler
При установке ПО Pangolin Pooler из пакета RPM на каталог и файлы конфигурации устанавливаются права лишь для пользователя postgres:
[student@srv1 ~]$ sudo find /etc/pangolin-pooler -ls
134335113 0 drwx------ 2 postgres postgres 53 Sep 9 11:27 /etc/pangolin-pooler
83887787 4 -rw------- 1 postgres postgres 1281 Sep 9 11:27 /etc/pangolin-pooler/pangolin-pooler.ini
126848666 4 -rw------- 1 postgres postgres 147 Sep 9 11:27 /etc/pangolin-pooler/userlist.txt
Конфигурационный файл оформлен в популярном стиле Win.ini, широко использовавшемся в начале 90-х в настроечных файлах ранних версий MS Windows. Такой стиль оформления до сих пор популярен из-за своей простоты.
Директивы настройки параметров:
- от начала строки имя параметра настройки;
- после символа
=значение.
Например:
listen_port = 6432
Все директивы настройки сгруппированы. Имена групп пишутся в квадратных скобках.
Например:
[databases]
* = host=localhost port=5432
Здесь [databases] — имя раздела, где указываются, к каким серверам и как необходимо подключаться.
Строки комментариев начинаются с ; или #. Такие строки просто игнорируются.
Пример строк комментария:
;;;
;;; Pangolin Pooler configuration file
;;;
После установки кластера с помощью Pangolin Installer в файле конфигурации уже имеются настройки по умолчанию. Получим все незакомментированные и непустые строки конфигурации:
[student@srv1 ~]$ sudo -u postgres egrep -v '^($|#|;)' /etc/pangolin-pooler/pangolin-pooler.ini
[databases]
* = host=<IP-Address1> port=5433 auth_port=5544 auth_pool_size=1
[pgbouncer]
listen_port = 6544
listen_addr = *
auth_type = scram-sha-256
auth_file = /etc/pangolin-pooler/userlist.txt
auth_proxy = on
auth_failure_threshold = 3
auth_inactivity_period = 60
auth_last_size = 10
log_audit = 1
logfile = /pgerrorlogs/srv2/pangolin-pooler/pangolin-pooler.log
pidfile = /var/run/pangolin-pooler/pangolin-pooler.pid
admin_users = pgbouncer
max_client_conn = 200
pool_mode = transaction
min_pool_size = 0
default_pool_size = 105
max_db_connections = 105
max_user_connections = 105
ignore_startup_parameters = extra_float_digits
unix_socket_dir =
ndc_suspending_timeout = 0
client_tls_crl_file =
server_tls_crl_file =
server_tls_protocols = secure
server_tls_ciphers = secure
server_tls_sslmode = verify-full
client_tls_protocols = secure
client_tls_ciphers = secure
client_tls_sslmode = prefer
server_tls_cert_file = /pg_ssl/pgbouncer.crt
server_tls_key_file = /pg_ssl/pgbouncer.key
client_tls_cert_file = /pg_ssl/server.crt
client_tls_key_file = /pg_ssl/server.key
server_tls_ca_file = /pg_ssl/root.crt
client_tls_ca_file = /pg_ssl/root.crt
server_tls_ca_path = /pg_ssl/root_dir
client_tls_ca_path = /pg_ssl/root_dir
Разделы файла конфигурации:
[databases]— настройки подключений к базам данных;[users]— индивидуальные настройки для пользователей;[pgbouncer]— общие настройки.
Общие настройки Pangolin Pooler представлены в документации.
Типы аутентификации, использующие секреты пользователей, требуют хранения этих секретов в файле аутентификации. По умолчанию файл определен в конфигурационном файле как userlist.txt. Формат записей в этом файле может быть следующий:
"username1" "password"
"username2" "md5abcdef012342345"
"username2" "SCRAM-SHA-256$<iterations>:<salt>$<storedkey>:<serverkey>"
Пример демонстрирует три поддерживаемых формата хранения пароля:
- открытый текст;
- хеш MD5;
- хеш SCRAM-SHA в специфичном формате Pangolin.
Способ генерации секретов для этого файла будет указан далее.
Изменение настроек по умолчанию
Допустим, что требуется провести простую настройку Pangolin Pooler в соответствии со следующими условиями:
- Соединения должны приниматься на всех сетевых интерфейсах.
- Порт TCP для клиентских соединений —
6544. - Соединение с БД
studentрольюstudentи типом аутентификацииSCRAM-SHA-256. - Метод сквозной аутентификации должен быть отключен.
После установки с помощью Pangolin Installer в файле конфигурации Pangolin Pooler все настройки с первого по четвертый пункты уже сделаны, но метод сквозной аутентификации автоматически включен. Выключим его:
[student@srv1 ~]$ sudo vi /etc/pangolin-pooler/pangolin-pooler.ini
auth_proxy = off
Это воссоздаст для нас условия оригинального PostgreSQL c PgBouncer.
В файле /etc/pangolin-manager/postgres.yml поменяем вход для пользователя student на SCRAM-SHA-256:
[student@srv1 ~]$ sudo vi /etc/pangolin-manager/postgres.yml
pg_hba:
- hostssl all student 0.0.0.0/0 scram-sha-256
[student@srv1 ~]$ sudo systemctl reload pangolin-manager.service
Добавим пароль для пользователя student:
[student@sv1 ~]$ sudo su - postgres
[postgres@sv1 ~]$ psql
psql (15.15)
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off)
Type "help" for help.
postgres=# \password student
Enter new password for user "student": <password>
Enter it again: <password>
postgres=# \q
[postgres@sv1 ~]$ exit
А зачем?
Так как мы будем подключаться к пулеру без сквозной аутентификации, PgBouncer необходимо знать кому доверять. Для этого необходимо добавить его имя и хеш пароля в список пользователей, которым разрешено подключаться к pgbouncer через свой пул соединений (файл userlist.txt). Без пароля PgBouncer не сможет проверить подлинность клиентов.
Создание списка пользователей
Проверим тип аутентификации, используемый в СУБД:
student=> SHOW password_encryption;
password_encryption
---------------------
scram-sha-256
(1 row)
Добавим секрет пользователя student, взятый из СУБД, в файл секретов:
[student@sv1 ~]$ psql "user=postgres password=<password>" -AtF ' ' -c \
"SELECT '\"' || usename || '\"', '\"' || passwd || '\"' FROM pg_shadow WHERE usename = 'student'" \
| sudo -u postgres tee -a /etc/pangolin-pooler/userlist.txt
"student" "SCRAM-SHA-256$4096:yneziuqF1mX965PglPl53A==$fnslspmqzw14Sqi8GwfATTFtv1lZD7UF3vy/5AS2anA=:37uO5da3tteyqsiTzEGz5XiKXNNEhISqbLOa7/BhGgM="
Сравним полученное содержимое файла секретов с его сохраненной копией:
[student@srv1 ~]$ sudo -u postgres diff /etc/pangolin-pooler/userlist.txt{.bak,}
1a2
> "student" "SCRAM-SHA-256$4096:yneziuqF1mX965PglPl53A==$fnslspmqzw14Sqi8GwfATTFtv1lZD7UF3vy/5AS2anA=:37uO5da3tteyqsiTzEGz5XiKXNNEhISqbLOa7/BhGgM="
В результате содержимое файла секретов:
[student@srv1 ~]$ sudo -u postgres cat /etc/pangolin-pooler/userlist.txt
"pgbouncer" "SCRAM-SHA-256$4096:6dSZcvwPBkjQxyYISRYwtg==$mhVRh0ny/2d9KTIqq3Kef19eRihnktgkVBh16XACzTE=:INzsKgwAIYvJVr5DxZ15FZGNw7uYRUAHPGtstbJVU7E="
"student" "SCRAM-SHA-256$4096:yneziuqF1mX965PglPl53A==$fnslspmqzw14Sqi8GwfATTFtv1lZD7UF3vy/5AS2anA=:37uO5da3tteyqsiTzEGz5XiKXNNEhISqb
Запуск пулера
Перезапустим пулер и проверим его статус:
[student@srv1 ~]$ sudo systemctl restart pangolin-pooler.service
[student@srv1 ~]$ sudo systemctl status pangolin-pooler.service
Вывод команды:
● pangolin-pooler.service - Pangolin Pooler connection pooling for PostgreSQL
Loaded: loaded (/usr/lib/systemd/system/pangolin-pooler.service; enabled; preset: disabled)
Active: active (running) since Wed 2026-09-09 12:19:35 UTC; 1 day 1h ago
Process: 276292 ExecStartPre=/bin/mkdir -p /var/run/pangolin-pooler (code=exited, status=0/SUCCESS)
Process: 276294 ExecStartPre=/bin/chown -R postgres:postgres /var/run/pangolin-pooler (code=exited, status=0/SUCCESS)
Process: 276295 ExecStart=/opt/pangolin-pooler/bin/pangolin-pooler -d ${POOLERCONF} (code=exited, status=0/SUCCESS)
Process: 276299 ExecStartPost=/bin/sleep 1 (code=exited, status=0/SUCCESS)
Main PID: 276297 (pangolin-pooler)
Tasks: 2 (limit: 22804)
Memory: 7.6M (peak: 9.6M)
CPU: 8.303s
CGroup: /system.slice/pangolin-pooler.service
└─276297 /opt/pangolin-pooler/bin/pangolin-pooler -d /etc/pangolin-pooler/pangolin-pooler.ini
Sep 09 12:19:34 srv1 systemd[1]: Starting Pangolin Pooler connection pooling for PostgreSQL...
Sep 09 12:19:35 srv1 systemd[1]: Started Pangolin Pooler connection pooling for PostgreSQL.
Проверьте, прослушивается ли порт TCP пулером:
[student@srv1 ~]$ sudo ss -tlnp | grep pool
LISTEN 0 128 0.0.0.0:6544 0.0.0.0:* users:(("pangolin-pooler",pid=276297,fd=10))
LISTEN 0 128 [::]:6544 [::]:* users:(("pangolin-pooler",pid=276297,fd=11))
Посмотреть сообщения пулера можно следующим образом:
[student@srv1 ~]$ sudo tail /pgerrorlogs/srv1/pangolin-pooler/pangolin-pooler.log
2026-09-10 14:22:09.490 UTC [288234] LOG listening on 0.0.0.0:6544
2026-09-10 14:22:09.490 UTC [288234] LOG listening on [::]:6544
2026-09-10 14:22:09.490 UTC [288234] LOG process up: PgBouncer 1.24.0, libevent 2.1.12-stable (epoll), adns: evdns2, tls: OpenSSL 3.5.5 27 Jan 2026
2026-09-10 14:23:09.491 UTC [288234] LOG stats: 0 xacts/s, 0 queries/s, 0 client parses/s, 0 server parses/s, 0 binds/s, in 0 B/s, out 0 B/s, xact 0 us, query 0 us, wait 0 us
2026-09-10 14:24:09.491 UTC [288234] LOG stats: 0 xacts/s, 0 queries/s, 0 client parses/s, 0 server parses/s, 0 binds/s, in 0 B/s, out 0 B/s, xact 0 us, query 0 us, wait 0 us
2026-09-10 14:25:09.490 UTC [288234] LOG stats: 0 xacts/s, 0 queries/s, 0 client parses/s, 0 server parses/s, 0 binds/s, in 0 B/s, out 0 B/s, xact 0 us, query 0 us, wait 0 us
2026-09-10 14:26:09.491 UTC [288234] LOG stats: 0 xacts/s, 0 queries/s, 0 client parses/s, 0 server parses/s, 0 binds/s, in 0 B/s, out 0 B/s, xact 0 us, query 0 us, wait 0 us
2026-09-10 14:27:09.491 UTC [288234] LOG stats: 0 xacts/s, 0 queries/s, 0 client parses/s, 0 server parses/s, 0 binds/s, in 0 B/s, out 0 B/s, xact 0 us, query 0 us, wait 0 us
Пути до логов могут отличаться. Корректный путь можно посмотреть в файле pangolin-pooler.ini параметр logfile.
Проверка работы пула
Подключимся к базе с использованием пулера:
[student@srv1 ~]$ psql -p 6544 -h srv1
Password for user student:
psql (15.5)
Type "help" for help.
Выведем PID серверного процесса, обслуживающего сессию:
student=> SELECT pg_backend_pid();
pg_backend_pid
----------------
8325
(1 row)
Выйдем из сеанса psql:
student=> \q
Снова войдем в сеанс и проверим PID процесса, обслуживающего сессию:
[postgres@srv1 ~]$ psql -p 6544 -h srv1
Password for user student:
psql (15.5)
Type "help" for help.
student=> SELECT pg_backend_pid();
pg_backend_pid
----------------
8325
(1 row)
student=> \q
Легко заметить, что PID серверного процесса один и тот же. А ведь при завершении работы клиента серверный процесс также должен завершиться. Так и было бы в случае отсутствия пулера – сессии и сеансы были бы одним и тем же понятием, так как для каждого клиента СУБД создает выделенное соединение. То есть одному клиенту выделяется один серверный процесс, что невыгодно при большом количестве клиентов.
В нашем случае, СУБД имеет единственное клиентское соединение: пулер обслуживается серверным процессом (в примере с PID 8325). Но сами клиенты подключаются к пулеру, поэтому при выходе из сеанса psql сессия продолжает обслуживаться тем же серверным процессом. Когда подключается новый сеанс psql сессия остается та же и серверный процесс тот же.
Проверим наличие простаивающей сессии:
[student@srv1 ~]$ ps f -C postgres
PID TTY STAT TIME COMMAND
7597 ? S 0:00 /usr/pangolin-6.7/bin/postgres -D /pgdata/06/data/ --config-file=/pgdata/06/data/postgresql.conf --listen_addresses=0.0.0.0 --port=5433 --cluster_name=Pobeda --wal_level
7600 ? Ss 0:00 \_ postgres: Pobeda: logger
7601 ? Ss 0:00 \_ postgres: Pobeda: checkpointer
7602 ? Ss 0:00 \_ postgres: Pobeda: background writer
7603 ? Ss 0:00 \_ postgres: Pobeda: startup recovering 0000000B0000000000000021
7604 ? Ss 0:00 \_ postgres: Pobeda: idle sessions terminator
7606 ? Ss 0:00 \_ postgres: Pobeda: integrity check launcher
7607 ? Ss 0:00 \_ postgres: Pobeda: license checker
7608 ? Ss 0:01 \_ postgres: Pobeda: authproc
8308 ? S 0:00 \_ postgres: Pobeda: authworker postgres <IP-Address1>(42148)
7609 ? Ss 0:00 \_ postgres: Pobeda: password policy cache
7618 ? Ss 0:00 \_ postgres: Pobeda: patroni postgres 127.0.0.1(46858) idle
7622 ? Ss 0:02 \_ postgres: Pobeda: walreceiver streaming 0/21000070
8325 ? Ss 0:00 \_ postgres: Pobeda: student student <IP-Address1>(53396) idle
В примере серверный процесс с PID 8325 обслуживает клиента с адресом IPv4 <IP-Address1> и клиентским номером порта TCP 53396.
Убедимся, что сессию установил пулер:
[student@srv1 ~]$ sudo ss -tnp | grep 53396
ESTAB 0 0 <IP-Address1>:53396 <IP-Address1>:5433 users:(("pangolin-pooler",pid=7682,fd=15))
ESTAB 0 0 <IP-Address1>:5433 <IP-Address1>:53396 users:(("postgres",pid=8325,fd=8))
Замените номер TCP-порта на свой.
Мы не добавляли секрет пользователя postgres, взятый из СУБД, в файл секретов. Проверим возможность подключения к порту 6544:
[student@srv1 ~]$ sudo su - postgres
[postgres@srv1 ~]$ psql -p 6544
Password for user postgres:
psql: error: connection to server at "<IP-Address1>", port 6544 failed: FATAL: password authentication failed for user "postgres"
connection to server at "<IP-Address1>", port 6544 failed: FATAL: password authentication failed for user "postgres"
PgBouncer не смог проверить пользователя postgres. Так работает при выключенной сквозной аутентификации, в следующем уроке мы в этом убедимся.
Консоль управления
Pangolin Pooler обладает специальной консолью управления. В этой консоли вводятся команды, подобные SQL, но предназначенные для управления пулером.
При подключении к порту пулера с именем базы pgbouncer не выполняется подключение к базе PostgreSQL, а открывается административная консоль — имитация интерфейса PostgreSQL.
Важнейшие команды консоли:
SHOW— набор команд для вывода состояния и т.п.PAUSE— приостановка клиентов.RESUME— продолжение работы приостановленных клиентов.RELOAD— перечитывание конфигурации.
Конечно, к управлению консолью допускаются не все пользователи. Поэтому пулер обладает соответствующими настройками конфигурации:
admin_users— список пользователей, которым разрешено выполнять любые команды управления;stats_users— список пользователей, которым разрешено выполнять лишь запросы на чтение, например,SHOW(причем, не все).
Добавим в настройки административного пользователя:
[student@srv1 ~]$ sudo -u postgres sed -i -e 's/^.*admin_users =.*$/admin_users = student/' /etc/pangolin-pooler/pangolin-pooler.ini
Проверим, что получилось:
[student@srv1 ~]$ sudo -u postgres grep -n '^admin_users' /etc/pangolin-pooler/pangolin-pooler.ini
191:admin_users = student
Рестартуем Pangolin Pooler:
[student@srv1 ~]$ sudo systemctl restart pangolin-pooler.service
[student@srv1 ~]$ sudo systemctl status pangolin-pooler.service
● pangolin-pooler.service - Pangolin Pooler connection pooling for PostgreSQL
Loaded: loaded (/usr/lib/systemd/system/pangolin-pooler.service; enabled; preset: disabled)
Active: active (running) since Mon 2026-09-14 07:16:43 UTC; 5s ago
Process: 5641 ExecStartPre=/bin/mkdir -p /var/run/pangolin-pooler (code=exited, status=0/SUCCESS)
Process: 5643 ExecStartPre=/bin/chown -R postgres:postgres /var/run/pangolin-pooler (code=exited, status=0/SUCCESS)
Process: 5644 ExecStart=/opt/pangolin-pooler/bin/pangolin-pooler -d ${POOLERCONF} (code=exited, status=0/SUCCESS)
Process: 5648 ExecStartPost=/bin/sleep 1 (code=exited, status=0/SUCCESS)
Main PID: 5646 (pangolin-pooler)
Tasks: 2 (limit: 22804)
Memory: 3.1M (peak: 3.5M)
CPU: 23ms
CGroup: /system.slice/pangolin-pooler.service
└─5646 /opt/pangolin-pooler/bin/pangolin-pooler -d /etc/pangolin-pooler/pangolin-pooler.ini
На srv1 подключимся административным пользователем к базе данных pgbouncer:
[student@srv1 ~]$ psql -p 6544 -h srv1 -d pgbouncer
Password for user student:
psql (15.15, server 1.24.0/bouncer)
WARNING: psql major version 15, server major version 1.24.
Some psql features might not work.
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off)
Type "help" for help.
pgbouncer=#
Для подключения к базе данных pgbouncer пароль пользователя, имеющего возможность к ней подключаться, обязательно должен находиться в списке разрешенных userlist.txt даже при включенной сквозной аутентификации.
Проверим записи пар подключений (база данных, пользователь) в пул:
pgbouncer=# SHOW POOLS \gx
-[ RECORD 1 ]---------+----------
database | pgbouncer
user | pgbouncer
cl_active | 1
cl_waiting | 0
cl_active_cancel_req | 0
cl_waiting_cancel_req | 0
sv_active | 0
sv_active_cancel | 0
sv_being_canceled | 0
sv_idle | 0
sv_used | 0
sv_tested | 0
sv_login | 0
maxwait | 0
maxwait_us | 0
avg_time | 0
avg_time_us | 0
max_time | 0
max_time_us | 0
pool_mode | statement
load_balance_hosts |
Пока у нас только одна запись.
В соседнем окне параллельно откроем сессию srv1 и подключимся к базе данных через пулер:
[student@srv1 ~]$ psql -p 6544 -h srv1
Проверим записи пар подключений в пул еще раз:
pgbouncer=# SHOW POOLS \gx
-[ RECORD 1 ]---------+------------
database | pgbouncer
user | pgbouncer
cl_active | 1
cl_waiting | 0
cl_active_cancel_req | 0
cl_waiting_cancel_req | 0
sv_active | 0
sv_active_cancel | 0
sv_being_canceled | 0
sv_idle | 0
sv_used | 0
sv_tested | 0
sv_login | 0
maxwait | 0
maxwait_us | 0
avg_time | 0
avg_time_us | 0
max_time | 0
max_time_us | 0
pool_mode | statement
load_balance_hosts |
-[ RECORD 2 ]---------+------------
database | student
user | student
cl_active | 1
cl_waiting | 0
cl_active_cancel_req | 0
cl_waiting_cancel_req | 0
sv_active | 0
sv_active_cancel | 0
sv_being_canceled | 0
sv_idle | 1
sv_used | 0
sv_tested | 0
sv_login | 0
maxwait | 0
maxwait_us | 0
avg_time | 0
avg_time_us | 18148
max_time | 0
max_time_us | 18148
pool_mode | transaction
load_balance_hosts |
Видно подключение пользователя student.
Посмотрим статистику следующим образом:
pgbouncer=# SHOW STATS \gx
-[ RECORD 1 ]-----------------+----------
database | pgbouncer
total_server_assignment_count | 0
total_xact_count | 1
total_query_count | 1
total_received | 0
total_sent | 0
total_xact_time | 0
total_query_time | 0
total_wait_time | 0
total_client_parse_count | 0
total_server_parse_count | 0
total_bind_count | 0
avg_server_assignment_count | 0
avg_xact_count | 0
avg_query_count | 0
avg_recv | 0
avg_sent | 0
avg_xact_time | 0
avg_query_time | 0
avg_wait_time | 0
avg_client_parse_count | 0
avg_server_parse_count | 0
avg_bind_count | 0
-[ RECORD 2 ]-----------------+----------
database | postgres
total_server_assignment_count | 1
total_xact_count | 1
total_query_count | 1
total_received | 71
total_sent | 108
total_xact_time | 2878
total_query_time | 2878
total_wait_time | 22600
total_client_parse_count | 0
total_server_parse_count | 0
total_bind_count | 0
avg_server_assignment_count | 0
avg_xact_count | 0
avg_query_count | 0
avg_recv | 0
avg_sent | 0
avg_xact_time | 0
avg_query_time | 0
avg_wait_time | 0
avg_client_parse_count | 0
avg_server_parse_count | 0
avg_bind_count | 0
Проверить сконфигурированные серверы, к которым подключается пулер, можно так:
pgbouncer=# SHOW SERVERS \gx
-[ RECORD 1 ]-------+-----------------------------------------------
type | S
user | postgres
database | postgres
replication | none
state | used
addr | <IP-Address1>
port | 5433
local_addr | <IP-Address1>
local_port | 40328
connect_time | 2026-09-15 10:46:10 UTC
loged_in_time | 2026-09-15 10:46:10 UTC
request_time | 2026-09-15 10:46:10 UTC
wait | 0
wait_us | 0
logged_in | 0
logged_in_us | 14820
close_needed | 0
ptr | 0x1628380
link |
remote_pid | 2760
tls | TLSv1.3/TLS_AES_256_GCM_SHA384/ECDH=prime256v1
application_name | psql
prepared_statements | 0
id | 10
А если команда выдала (0 rows)?
Значит соединение клиента к базе данных существует, пул есть. Но так как никакой активности в базе данных мы не делали – подключения самого пула к базе данных еще не создано.
Создадим транзакцию в соседнем окне:
student=> SELECT now();
Снова выполним:
pgbouncer=# SHOW SERVERS \gx
Более подробную информацию о работе в консоли можно найти в документации в подразделе «Консоль администратора».
Подведем итоги
Вопрос 1
Вопрос 1: В каком файле определяются правила аутентификации при подключению к пулеру?
Вопрос 2
Вопрос 2: В каком файле должны находиться секреты пользователей для аутентификации в пулере?
Вопрос 3
Вопрос 3: Посмотрите на фрагмент конфигурации:
* = host=localhost port=5432
Выберите верное утверждение: