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
方法。
我有点麻烦。我已经尝试使用 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
方法。