owari758
@owari758

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

PythonからPostgreSQLに接続ができません。

解決したいこと

pythonからPostgreSQLに接続したいのですが、エラーが出て接続ができません。
解決方法をご教授していただきたいです。

発生している問題・エラー

ould not connect to server: Connection refused
	Is the server running on host "127.0.0.1" and accepting
	TCP/IP connections on port 5432?
  
    connection = psycopg2.connect(
                 ^^^^^^^^^^^^^^^^^
psycopg2.OperationalError: could not connect to server: Connection refused
	Is the server running on host "127.0.0.1" and accepting
	TCP/IP connections on port 5432?

該当するソースコード

import psycopg2

path = '127.0.0.1'
port = '5432'
dbname = ''
user = ''
password = ''

conText = 'host={} port={} dbname={} user={} password={}'
conText = conText.format(path,port,dbname, user, password)

connection = psycopg2.connect(conText)
cur = connection.cursor()

自分で試したこと

postgresql.conf
pg_hba.conf
の編集

0

3Answer

Comments

  1. @owari758

    Questioner

    動いています。

psql -h 127.0.0.1 -p 5432 -U user ? -d dbname?

ログインはできるのでしょうか?

dbname = ''
user = ''
1Like

Comments

  1. @owari758

    Questioner

    再度試してみましたが、ログインできました
  2. @owari758

    Questioner

    dockerで環境構築していることにも関係しているのでしょうか?
  3. 原因はそれです! 127.0.0.1はホスト側(コンテナ外) と コンテナ内とでは全く違う対象に接続します。
    docker内でログインできるか? 土俵は同じで! 

    対策 

    postgreSQL にnicのipを割当てましょう。
  4. @owari758

    Questioner

    dockerfileとdoker-compose.ymlを書き直したら上記のエラーはでてこなくなりました!
    ありがとうございます!

    ただ別のエラー
    psycopg2.OperationalError: SCRAM authentication requires libpq version 10 or abov
    が出てきてしまいした・・・

    とにかく本質問のエラーは解消されました!
    ありがとうございます!
psycopg2.OperationalError: could not connect to server: Connection refused
	Is the server running on host "127.0.0.1" and accepting
	TCP/IP connections on port 5432?

psycopg2でエラーが起きたよ。
(PostgreSQL)Serverに繋げられなかったよ。
(PostgreSQL)Serverは127.0.0.1で起動してる?また5432ポートで稼働してる?

127.0.0.1はpythonスクリプトを実行したマシンと同じマシンです。

PostgreSQL Serverを同じマシンで起動しているでしょうか。

5432ポートで起動しているでしょうか(postgresql.confをportで検索)

受付アドレスは正しいでしょうか
(postgresql.confをlistenで検索)

pythonスクリプトからではなくpsqlコマンドからは繋げられるでしょうか。

といった切り分けを試してみてください

0Like

Comments

  1. @owari758

    Questioner

    ありがとうございます!
    切り分けて試してみます!

Your answer might help someone💌