我正在尝试通过Python 2.7 / sqlalchemy(1.2.14)/ psycopg2(2.7.6.1)连接到RedShift数据库,但是在配置SSL属性时遇到问题:
from sqlalchemy import create_engine
connection = create_engine('redshift+psycopg2://(username:password)@(server):5439/(database)?sslmode=verify-full').connect()
sqlalchemy.exc.OperationalError:(psycopg2.OperationalError)SSL错误:证书验证失败
我已经按照亚马逊的指示完成了所有步骤:
Transitioning to ACM Certificates for SSL Connections: Using Other SSL Connection Types
Install and Configure the Amazon Redshift ODBC Driver on Microsoft Windows Operating Systems
因此,我现在将最新版本的redshift-ca-bundle.crt作为root.crt保存到我的%APPDATA%\ postgresql文件夹中。我还安装了32位和64位驱动程序,并在两个ODBC管理器工具(32和64)中配置了系统DSN,以成功验证服务器连接。
我缺少什么才能在Python代码中正确配置SSL以进行连接?我确实知道需要SSL才能进行连接,但是不确定如何提供正确的证书。
答案 0 :(得分:1)
我可以使用pypyodbc和以下连接字符串成功连接(详细信息已删除):
Data have;
input gender wgt q1 year;
lines;
0 1.5 0 2014
0 1 1 2014
0 1.5 1 2014
0 1 1 2014
0 1.5 0 2014
1 1 1 2014
1 1 1 2014
1 1 1 2014
1 1 0 2014
1 1 1 2014
1 1 1 2014
;
run;
Proc format;
value gender 0="boy";
1= "girl";
value q1f 0= "No"
1="Yes";
run;
Proc tabulate data=have;
class gender q1 year;
weight wgt;
table gender*pctn<q1>, year*q1;
format gender gender. q1 q1f.;
run;