1

我正在尝试使用 db。所以我使用以下连接信息连接到 PostgreSQL 数据库。我正在使用 Jupyter 笔记本。

from sqlalchemy import create_engine
POSTGRES_DIALECT = 'postgresql'
POSTGRES_SERVER = 'server'
POSTGRES_DBNAME = 'db'
POSTGRES_SCHEMA = 'public' 
POSTGRES_USERNAME = 'user' 
POSTGRES_PASSWORD = 'password'

postgres_str = ('{dialect}://{username}:{password}@{server}/{dbname}'.format(
                    dialect=POSTGRES_DIALECT,
                    server=POSTGRES_SERVER,
                    dbname=POSTGRES_DBNAME,
                    username=POSTGRES_USERNAME,
                    password=POSTGRES_PASSWORD
                ))
# Create the connection
cnx = create_engine(postgres_str)
agreements_df = pd.read_sql_query('''SELECT * from db''', cnx)
agreements_df.head()

有错误:

OperationalError: (psycopg2.OperationalError) could not translate host name "server" to address: nodename nor servname provided, or not known

在此处输入图像描述

4

2 回答 2

0

调用POSTGRES_SERVER类似POSTGRES_HOSTand 参数host而不是server. 那么更明显的是“服务器”不是可解析的主机名。我将使用 psql 进行测试,以查看您要连接的 Postgres 服务器可以访问的主机名。

于 2020-09-02T21:36:37.580 回答
0

我得到了错误的连接信息。问题出在提供连接信息的一侧(端口已关闭或错误可能与 DNS 有关)。

最好在这里规定ip,"POSTGRES_SERVER = 'server'"用一些ip号代替。

于 2020-09-03T15:10:56.443 回答