В настоящее время на моем сервере работает Postgres, который хочет перейти на объединение в пул. Если оглянуться вокруг, кажется, что лучше всего подходит PgBouncer. Я настроил его, и он утверждает, что запускается нормально с файлом журнала, который выглядит как
[databases]
xxxx = host=localhost port=5432 dbname=xxxx user=xxx
[pgbouncer]
logfile = /var/log/pgbouncer.log
pidfile = /var/run/pgbouncer/pgbouncer.pid
listen_addr = *
listen_port = 6434
auth_type = trust
auth_file = /etc/pgbouncer/userlist.txt
admin_users = postgres
stats_users = stats, postgres
pool_mode = session
server_reset_query = DISCARD ALL
max_client_conn = 100
default_pool_size = 20
И список пользователей:
"xxx" "xxxxx"
который запускается без ошибок. Лог-файл:
DEBUG parse_ini_file: 'logfile' = '/var/log/pgbouncer.log' ok:1
DEBUG parse_ini_file: 'pidfile' = '/var/run/pgbouncer/pgbouncer.pid'
DEBUG parse_ini_file: 'pidfile' = '/var/run/pgbouncer/pgbouncer.pid' ok:1
DEBUG parse_ini_file: 'listen_addr' = '*'
DEBUG parse_ini_file: 'listen_addr' = '*' ok:1
DEBUG parse_ini_file: 'listen_port' = '6434'
DEBUG parse_ini_file: 'listen_port' = '6434' ok:1
DEBUG parse_ini_file: 'auth_type' = 'trust'
DEBUG parse_ini_file: 'auth_type' = 'trust' ok:1
DEBUG parse_ini_file: 'auth_file' = '/etc/pgbouncer/userlist.txt'
DEBUG parse_ini_file: 'auth_file' = '/etc/pgbouncer/userlist.txt' ok:1
DEBUG parse_ini_file: 'admin_users' = 'postgres'
DEBUG parse_ini_file: 'admin_users' = 'postgres' ok:1
DEBUG parse_ini_file: 'stats_users' = 'stats, postgres'
DEBUG parse_ini_file: 'stats_users' = 'stats, postgres' ok:1
DEBUG parse_ini_file: 'pool_mode' = 'session'
DEBUG parse_ini_file: 'pool_mode' = 'session' ok:1
DEBUG parse_ini_file: 'server_reset_query' = 'DISCARD ALL'
DEBUG parse_ini_file: 'server_reset_query' = 'DISCARD ALL' ok:1
DEBUG parse_ini_file: 'max_client_conn' = '100'
DEBUG parse_ini_file: 'max_client_conn' = '100' ok:1
DEBUG parse_ini_file: 'default_pool_size' = '20'
DEBUG parse_ini_file: 'default_pool_size' = '20' ok:1
LOG File descriptor limit: 1024 (H:4096), max_client_conn: 100, max fds possible: 130
DEBUG pktbuf_dynamic(128): 0xa451c0
DEBUG make_room(0xa451c0, 9): realloc newlen=256
DEBUG pktbuf_dynamic(128): 0xa45400
Когда я поднимаю netstat -lntp
он не перечисляет ничего, что слушает 6434, и, конечно, я не могу подключиться к нему. В одной из моих попыток и в файле конфигурации он действительно запустился, и я смог подключиться к нему. Но после перезапуска сервера он больше не работает, и я сомневаюсь, что я изменил конфигурацию. Я безуспешно пробовал разные типы аутентификации и порты.
РЕДАКТИРОВАТЬ
Поэтому я несколько раз переустанавливал pgbouncer, и он работает с моей текущей конфигурацией, пока я не остановлю его снова. После остановки я не могу запустить его снова, но могу перезапустить. Я запускаю команду запуска как root, если это может повлиять на нее?
Похоже на проблему с разрешениями на /tmp/.s.PGSQL.6434, если она возникает при перезапуске. Убедитесь, что вы выполняете перезапуск от имени того же пользователя или su - pgbounceruser -c "/ usr / bin / pgbouncer -R -d /etc/pgbouncer/pgbouncer.ini", чтобы он принял новые настройки.