2017-09-19 49 views
1

python manage.py syncdbをDjangoにインストールしようとしていますが、私はOperationalError: ERROR: pgbouncer cannot connect to serverを取得し続けています。でgrep port /etc/pgbouncer/pgbouncer.ini結果、またOperationalError:エラー:pgbouncerがサーバに接続できません

postgres 1128  1 0 18:38 ?  00:00:00 /usr/sbin/pgbouncer -d /etc/pgbouncer/pgbouncer.ini 
myuser 1919 1533 0 19:45 pts/0 00:00:00 grep --color=auto pgbouncer 

;; dbname= host= port= user= password= 
mydb = host=xx.xxx.xxx.xxx port=5432 dbname=mydb 
;forcedb = host=127.0.0.1 port=300 user=baz password=foo client_encoding=UNICODE datestyle=ISO connect_query='SELECT 1' 
listen_port = 6432 

最後に、settings.pyの関連部分が含まれ、ps -aef | grep pgbouncer収率を必要とする場合には

2017-09-19 19:44:15.107 1128 LOG C-0x8a9930: mydb/[email protected]:6432 closing because: pgbouncer cannot connect to server (age=0) 
2017-09-19 19:44:15.107 1128 WARNING C-0x8a9930: mydb/[email protected]:6432 Pooler Error: pgbouncer cannot connect to server 
2017-09-19 19:44:15.107 1128 LOG S-0x8c72e0: mydb/[email protected]:5432 new connection to server 
2017-09-19 19:44:15.107 1128 LOG C-0x8a9930: mydb/[email protected]:6432 login failed: db=mydb user=myuser 
2017-09-19 19:44:30.108 1128 LOG S-0x8c72e0: mydb/[email protected]:5432 closing because: connect failed (age=15) 

:pgbouncer.logのような行が含まれ:

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'NAME': 'mydb', 
     'USER': 'myuser', 
     'PASSWORD': 'mypassword', 
     'HOST': '/var/run/postgresql', 
     'PORT': '6432', 
    } 

私はpostgresql.confでlog_connectionsonにして、PGを再起動してもう一度試しました。ここでは、関連する行です:

2017-09-20 07:50:59 UTC LOG: database system is ready to accept connections 
2017-09-20 07:50:59 UTC LOG: autovacuum launcher started 
2017-09-20 07:51:00 UTC LOG: connection received: host=[local] 
2017-09-20 07:51:00 UTC LOG: incomplete startup packet 
2017-09-20 07:51:00 UTC LOG: connection received: host=[local] 
2017-09-20 07:51:00 UTC LOG: connection authorized: user=postgres database=postgres 
2017-09-20 07:51:01 UTC LOG: connection received: host=[local] 
2017-09-20 07:51:01 UTC LOG: connection authorized: user=postgres database=postgres 
2017-09-20 07:51:01 UTC LOG: connection received: host=[local] 
2017-09-20 07:51:01 UTC LOG: connection authorized: user=postgres database=postgres 

は、接続が通過しているようだが、userdatabase名前がpostgresです。これらの資格情報は、私がpgbouncer.iniで提供したものではありません。

2017-09-20 09:37:37 UTC FATAL: Peer authentication failed for user "myuser" 
2017-09-20 09:37:37 UTC DETAIL: Connection matched pg_hba.conf line 90: "local all    all          peer" 

完全に困惑:

しかし、明示的pgbouncer.iniで説明した接続文字列でmyuserを追加することにつながります。

+0

PostgreSQLのログには何が書かれていますか? PostgreSQLは宛先で実行されていますか? –

+0

あなたは私のコメントの最初の部分を読まなかった。 'log_connections'を' on'にして、PostgreSQLログをチェックしてください。 –

+0

settings.pyにはソケットディレクトリがhostとして定義されていますが、 '/ etc/pgbouncer/pgbouncer.ini'にはlocalhostがあります。'/var/run/postgresql'を '127.0.0.1'に変更してください。' settings.py' –

答えて

0

設定ミスがsettings.pyに、このラインから放射思わ:

'PORT': '6432', 

私はそれをコメントしてpgbouncerが仕事を始めました。

私は「なぜ」とは分かりませんが。

おそらくこのポートに衝突があります。 PgbouncerとPGは私のケースでは単一のサーバ上に共存します。過去に別のVMに設定しました。(コメントする必要はありません)'PORT': '6432',

関連する問題