1

スタンドアロンの postgresql サーバーで pgbouncer を動作させようとしていますが、pgbouncer ポートを使用してデータベースに接続しようとすると、タイムアウト エラーが発生します。

Postgresql: 9.1.8

pgBouncer: 1.4.2

OS: Ubuntu 12.04.2 LTS (GNU/Linux 3.8.4-x86_64-linode31 x86_64)

これが私のconfファイルです:

[databases]
postgres = host=127.0.0.1 port=5432 dbname=postgres
mydb = host=127.0.0.1 port=5432 dbname=mydb

[pgbouncer]
logfile = /home/username/pg_log/pgbouncer.log
pidfile = /tmp/pgbouncer.pid
listen_addr = xxx.xxx.xxx.xxx
listen_port = 6432
unix_socket_dir = /var/run/postgresql
auth_type = md5
auth_file = /etc/pgbouncer/userlist.txt
admin_users = postgres
stats_users = stats, root
user = postgres
pool_mode = session
server_reset_query = DISCARD ALL
max_client_conn = 1000
default_pool_size = 20
log_connections = 1
log_disconnections = 1
log_pooler_errors = 1

次のように接続をテストしようとしています:

psql -p 6432 -U postgres mydb

ここに私のログファイルがあります:

28396 LOG listening on xxx.xxx.xxx.xxx:6432
28396 LOG listening on unix:/var/run/postgresql/.s.PGSQL.6432
28396 LOG process up: pgbouncer 1.4.2, libevent 2.0.16-stable (epoll), adns: evdns2
28864 LOG C-0x23f7890: mydb/postgres@unix:6432 login attempt: db=mydb user=postgres
28864 LOG C-0x23f7890: mydb/postgres@unix:6432 closing because: client unexpected eof (age=0)
28864 LOG C-0x23f7890: mydb/postgres@unix:6432 login attempt: db=mydb user=postgres
28864 LOG S-0x2415240: mydb/postgres@127.0.0.1:5432 new connection to server
28864 LOG S-0x2415240: mydb/postgres@127.0.0.1:5432 closing because: connect failed (age=0)
28864 LOG S-0x2415240: mydb/postgres@127.0.0.1:5432 new connection to server
28864 LOG S-0x2415240: mydb/postgres@127.0.0.1:5432 closing because: connect failed (age=0)
28864 LOG S-0x2415240: mydb/postgres@127.0.0.1:5432 new connection to server
28864 LOG S-0x2415240: mydb/postgres@127.0.0.1:5432 closing because: connect failed (age=0)
28864 LOG S-0x2415240: mydb/postgres@127.0.0.1:5432 new connection to server
28864 LOG S-0x2415240: mydb/postgres@127.0.0.1:5432 closing because: connect failed (age=0)
28864 LOG Stats: 0 req/s, in 0 b/s, out 0 b/s,query 0 us
28864 LOG C-0x23f7890: mydb/postgres@unix:6432 closing because: client_login_timeout (server down) (age=60)
28864 WARNING C-0x23f7890: mydb/postgres@unix:6432 Pooler Error: client_login_timeout (server down)
28864 LOG Stats: 0 req/s, in 0 b/s, out 0 b/s,query 0 us
28864 LOG Stats: 0 req/s, in 0 b/s, out 0 b/s,query 0 us

pgbouncer を機能させるために他に変更する必要があるものはありますか?

4

3 に答える 3

5

変化する

listen_addresses = 'private_ip'

listen_addresses = '*'

postgresql.confファイル内。

于 2013-04-16T15:25:59.593 に答える
1

Unix ソケットを使用して接続しようとしているようです。Postgres のインストールによっては、ソケットが /var/run/postgres ではなく /tmp に作成されている場合があります。私はこれと同じ問題に遭遇し、ここで議論されました

pgbouncer.ini 設定を次のように変更してみてください。

unix_socket_dir = /tmp

次のように -h を追加して、localhost に接続することもできます。

 psql -p 6432 -h localhost -U postgres mydb

お役に立てれば!

于 2013-04-16T15:18:29.247 に答える
0

[databases]私にとっては、設定ファイルのセクションでデータベースを定義したときに問題が発生したようです。host=127.0.0.1またはを使用できませんでしたがhost=localhost、実際の IP を使用する必要がありましたhost=192.168.0.1。これは、postgresqlpg_hba.confファイルの構成ミスが原因である可能性がありますが、ローカル IP で機能させる方法が見つかりませんでした。

于 2021-01-07T18:09:33.720 に答える