PgBouncer 未监听且日志中没有错误

PgBouncer 未监听且日志中没有错误

我目前在服务器上运行 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 身份运行启动命令,这是否会影响它?

答案1

如果在重启时发生,则听起来像是 /tmp/.s.PGSQL.6434 上的权限问题。请确保您以同一用户身份重启,或者 su - pgbounceruser -c "/usr/bin/pgbouncer -R -d /etc/pgbouncer/pgbouncer.ini" 以使其采用新设置。

相关内容