Psycopg2 和 sqlalchemy 都无法从本地 PostgreSQL 数据库中提取数据

Psycopg2 and sqlalchemy both not working to pull data from a local PostgreSQL database

我有点麻烦。我已经尝试使用 psycopg2 和 sqlalchemy 进入我的本地 PostgreSQL 数据库,虽然它没有抛出错误,但它不会建立连接。相反,它只是停留在执行代码上。这就是它出错的地方。

conn = psycopg2.connect(database='db', user="user", password="password", host="127.0.0.1", port="55212")

同样,当使用 sqlalchemy 时,这里也是出错的地方。

engine = create_engine('postgresql://pw:db@localhost:55212/DB')

请帮忙,在解决此问题之前我无能为力!

没有看到日志,只能猜测。 但基本上,当使用 sqlalchemy 时,您传递给 create_engine 的连接字符串应该类似于:"postgresql+psycopg2://user_name:password@host_address:port/schema"。 如果您传递的数据正确,请确保您的数据库服务器已打开以进行连接。 如果您尝试从不同的 docker 容器连接到 docker 容器,请确保它们共享网络,并将 host_address 从 localhost 更改为容器名称。

PostgreSQL 的默认端口是 5432,因此在尝试其他端口之前请先确定要使用的端口。 创建 Engine 后,使用 engine.connect() 连接到数据库,其中 returns 连接(最好使用上下文管理器)。

然后您可以将该连接用于 execute 查询或将其传递给 pandas read_sql_query 方法。