#database #postgresql #port #connection-pooling #pgbouncer
#База данных #postgresql #порт #объединение в пул соединений #pgbouncer
Вопрос:
Я пытаюсь настроить пул подключений, используя pgbouncer 1.7.2 для PostgreSQL 9.6 в Windows 10.
Пытаюсь подключиться к pgbouncer в cmd
psql -p 6432 -h 127.0.0.1 postgres pgbouncer
выдает ошибку:
psql: server closed the connection unexpectedly Server terminated abnormally before or while processing
Порт 6432 прослушивает и просматривает pg_log, ошибок нет.
Вот мой конфигурационный файл pgbouncer.ini:
[databases]
mydb = host=127.0.0.1 port=5432 dbname=mydb
[pgbouncer]
logfile = pgbouncer.log
pidfile = pgbouncer.pid
listen_addr = *
listen_port = 6432
auth_type = md5
auth_file = C:/Program Files/pgbouncer-1.7.2-win32/etc/pgbouncer/userlist.txt
admin_users = postgres, lisam
stats_users = stats, root
Где users.txt содержит
«postgres» «some_password»
В руководстве по pgbouncer говорится:
Начиная с PostgreSQL 9.0, текстовые файлы больше не используются. Таким образом, необходимо сгенерировать файл аутентификации. Смотрите ./etc/mkauth.py пример скрипта для генерации файла аутентификации из таблицы pg_shadow. PostgreSQL MD5-формат скрытого пароля: «md5» md5 (пароль имя пользователя)
Кто-нибудь знает, как вручную сгенерировать файл аутентификации?
Любая помощь была бы высоко оценена.
Спасибо,
Lisa
Комментарии:
1. вы можете
select 'md5'||md5('password'||'username')
получить значение md5
Ответ №1:
вы можете использовать функцию postgres md5, например:
postgres=# select usename,concat('md5',md5('postregs user password'||usename)) from pg_user where usename='postgres';
usename | concat
---------- -------------------------------------
postgres | md584f1938f5f80a2f6ba95cea7875ad602
(1 row)
это означало бы, что вы должны добавить
"postgres" "md584f1938f5f80a2f6ba95cea7875ad602"
вам C:/Program Files/pgbouncer-1.7.2-win32/etc/pgbouncer/userlist.txt
Комментарии:
1. Спасибо за вашу помощь!