无法使用psycopg连接到Redshift集群

时间:2020-08-11 18:29:54

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

我已经在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”转换为地址:未知主机

请帮助!

1 个答案:

答案 0 :(得分:1)

由于收到的错误消息为“未知主机”,因此它为您提供了一个首先进行故障排除的线索。

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

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

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