psycopg2.OperationalError: 无法连接到服务器:连接被拒绝

6
import os
import datetime
from flask import Flask, render_template, redirect, url_for
# from database import DatabaseConnection
# from models import kayıt
from forms import LoginForm
import psycopg2 as p
        
conn=p.connect(dbname='app_db', user='postgres', host='localhost', password='samet', port=5432)
conn.autocommit=True
cur=conn.cursor()   

连接和线路

psycopg2.OperationalError: could not connect to server: Connection refused

使用: postgresql:9.6.5 python:3

如果我只运行具有此信息的postgre,但它没有在Python中运行

谢谢

抱歉,我应该解释得更清楚一些。我正在处理一个docker。我有3个容器,但我正在尝试通过PostgreSQL使用Python容器。我想要使用psycopg2。但是我遇到了这样的错误。我的登录信息是正确的。我已经检查过了。


你检查过 postgresql 服务 是否正常运行了吗? 如果它正在运行,那么问题可能是由于错误的 凭据 导致的。 - Abhi
你是否在与Postgres相同的容器中运行Python代码?如果不是,您需要确保在各个容器之间桥接端口,docker-compose可以轻松实现此操作。 - Sam Mason
2个回答

3

解决这个问题的方法:

根据这个答案

Postgres没有在与Flask应用程序相同的容器中运行,因此无法通过localhost访问。我们应该找到具有Flask的docker容器的IP地址并添加它,或者只需在localhost的位置添加Postgres或volume_name。

所以你的连接应该像这样:

conn=p.connect(dbname='app_db', user='postgres', host='volume_name_of_postgres_in_docker_compose', password='samet', port=543

1

你确定你传递给 psycopg2connect 函数的所有参数都是正确的吗?

conn=p.connect(dbname='app_db', user='postgres', host='localhost', password='samet', port=5432)

数据库名称、用户名、主机名、密码和端口号都有可能不正确。


我的登录信息是正确的。我进行了检查。 - samet yılmaz
你肯定忽略了什么。 - RealPawPaw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接