【问题标题】:Flask-SQLAlchemy Postgres Error - could not connect to server: Connection refused (0x0000274D/10061)Flask-SQLAlchemy Postgres 错误 - 无法连接到服务器:连接被拒绝 (0x0000274D/10061)
【发布时间】:2020-07-23 00:13:03
【问题描述】:

这是我当前的初始化文件,我已经在我的 models.py 上创建了数据库模型,但我认为我对此没有任何问题。每当我“db.create_all()”时,我都无法创建我的数据库表......它给了我错误,我在下面发布。

  • 我安装了 psycopg2。
  • 我尝试在我的 database_uri 链接上添加“localhost:5432”,但这也不起作用。
  • 我进入我的 postgres 配置文件并将“listen_addresses”从“*”更改为“::1, 127.0.0.1”
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

app.config['SECRET_KEY'] = 'mysecretkey'

# DATABASE CONFIGS ---------------------------------------------------------------------------
db = SQLAlchemy(app) 

ENV = 'dev'

if ENV == 'dev':
    app.debug = True
    app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://postgres:123456@localhost/flaskqna'
else:
    app.debug = False
    app.config['SQLALCHEMY_DATABASE_URI'] = ''

app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

db = SQLAlchemy(app)

# DATABASE CONFIGS ---------------------------------------------------------------------------

from flaskqna import routes

错误

sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) could not connect to server: Connection refused (0x0000274D/10061)
        Is the server running on host "localhost" (::1) and accepting
        TCP/IP connections on port 5432?
could not connect to server: Connection refused (0x0000274D/10061)
        Is the server running on host "localhost" (127.0.0.1) and accepting
        TCP/IP connections on port 5432?

【问题讨论】:

  • 你有 PostgreSQL 数据库在某处运行吗?
  • 是的,我已经安装了 pgAdmin4,并创建了名为“flaskqna”的数据库
  • 你能通过psql连接吗?
  • 否 :( 我放弃了。我只是切换回 sqlite 而不是 Postgres。似乎我的防火墙或我的电脑的网络/端口有问题。

标签: python python-3.x postgresql flask sqlalchemy


【解决方案1】:

我遇到了同样的问题,对我有用的是明确使用端口 5433。

postgresql://postgres:123456@localhost:5433/flaskqna

我在打开 SQL Shell (psql) 并在第一个提示输入 5432 并在第二个提示输入我的数据库名称后意识到这一点。在您的情况下,它将是 flaskqna。端口 5433 出现在那里。

看起来你已经恢复到 sqlite,但试一试

【讨论】:

    【解决方案2】:
    'postgresql://postgres:123456@localhost/flaskqna'
    

    将 localhost 替换为 Wi-Fi 设置(网络设置)中的机器 IP 地址

    它将修复此错误。

    【讨论】:

      【解决方案3】:

      感谢 Abdullah 的回答,这让我找到了解决方案。

      在解决 postgresql 连接问题时,消息很重要:

      如果你得到“连接被拒绝”,这意味着你的服务器没有运行/你在错误的端口上尝试它或者你在 postgresgl.conf 中的 listen_addresses 设置不包括地址您连接的来源。

      如果您的 postgresql 服务器正在侦听您尝试连接的地址/网络,但您的 pg_hba.conf 不允许您请求的访问/用户/数据库,那么您将得到一个不同的错误,理由是 pg_hba.conf 中缺少。

      我配置了我的地下室 postgresql 服务器,以便为我楼上计算机上运行的 python 应用程序提供服务,所以它只监听它的 LAN 地址。然后我找到了一个我想在同一个linux盒子上安装的服务,当它无法在本地连接时感到困惑。尝试用 LAN IP 替换 localhost 的建议改变了消息(几乎总是一个好兆头,对吗?)并让我找到了解决方案。

      希望我的冒险可以帮助别人。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-08-19
        • 1970-01-01
        • 2019-02-20
        • 2017-04-28
        • 2013-11-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多