【问题标题】:unable to connect to redshift cluster using psycopg无法使用 psycopg 连接到 redshift 集群
【发布时间】:2020-08-11 18:29:54
【问题描述】:

我已经在 redshift 中创建了一个集群,我正在尝试通过 python psycopg 连接到集群...我能够使用 jdbc 驱动程序通过 sqlworkbench/j 进行连接,但我无法在 python 中这样做。 这是我的代码

import psycopg2  
import os

# Redshift Server Details
dsn_database = "dev"
dsn_hostname = "redshift-cluster-1.cdd5oumaebpd.ap-south-1.redshift.amazonaws.com:5439/dev"
dsn_port = "5439"
dsn_uid = "*****"
dsn_pwd = "*****"

con=psycopg2.connect(dbname= dsn_database, host=dsn_hostname, 
port= dsn_port, user= dsn_uid, password= dsn_pwd)

我收到以下错误: sqlalchemy.exc.OperationalError:(psycopg2.OperationalError)无法将主机名“host.amazonaws.com”转换为地址:未知主机

请帮忙!

【问题讨论】:

  • 您的dsn_hostname 实际上不是主机名,而是连接字符串。
  • 哦,明白了!非常感谢!!

标签: amazon-web-services amazon-redshift psycopg2


【解决方案1】:

由于您收到的错误是“未知主机”,它为您提供了一个线索,您可以先在哪里进行故障排除。

有关如何使用参数的指导,请参阅the official psycopg2 documentation。您可以使用 dsn 参数进行连接,也可以使用关键字参数。由于您使用的是关键字参数(文档中的第二个选项),因此您应该指定没有端口和数据库的主机,看看是否有效。这意味着dsn_hostname = "redshift-cluster-1.xxx.xxx.redshift.amazonaws.com"

如果您想了解更多信息,这与this Stack Overflow question and answer here 非常相似。

另外,我真的希望这些不是您的实际凭据,如果是,请删除它们以确保您的数据库安全!

【讨论】:

  • @RohanNaik 希望对您有所帮助,如果可以,您可以将您的问题标记为已回答。
猜你喜欢
  • 2017-11-04
  • 1970-01-01
  • 2013-02-23
  • 2019-12-13
  • 1970-01-01
  • 2020-04-17
  • 2021-11-23
  • 2018-11-01
  • 1970-01-01
相关资源
最近更新 更多