Python 烧瓶SQLAlchemy ssl连接与AWS RDS错误
我正在尝试通过ssl将flask应用程序mysql连接与AWS RDS连接起来,当我尝试像这样使用mysql客户端时,它会工作Python 烧瓶SQLAlchemy ssl连接与AWS RDS错误,python,mysql,amazon-web-services,flask,aws-rds,Python,Mysql,Amazon Web Services,Flask,Aws Rds,我正在尝试通过ssl将flask应用程序mysql连接与AWS RDS连接起来,当我尝试像这样使用mysql客户端时,它会工作 mysql-u user-h myrds.rds.amazonaws.com-p--sslca=rds组合ca bundle.pem 我可以登录,但当我尝试使用flask应用程序时 SQLALCHEMY\u数据库mysql://user:Password@myrds.rds.amazonaws.com.rds.amazonaws.com/miro_dev?ssl_cer
mysql-u user-h myrds.rds.amazonaws.com-p--sslca=rds组合ca bundle.pem
我可以登录,但当我尝试使用flask应用程序时
SQLALCHEMY\u数据库mysql://user:Password@myrds.rds.amazonaws.com.rds.amazonaws.com/miro_dev?ssl_cert=rds组合ca bundle.pem'
这会给我带来错误
sqlalchemy.exc.OperationalError:(_mysql_exceptions.OperationalError)(2026,“SSL连接错误:无法获取私钥”)
我这样做:
...
ssl_args = {'ssl': {'ca': 'YOUR_SSL_CERT_PATH'}}
db_url = 'mysql://{}:{}@{}/{}'.format(username, password, server, database)
engine = create_engine(db_url, connect_args=ssl_args, echo=False)
cnx = engine.connect()
df = pd.read_sql_table('table_name', cnx)
我建议不要输入如下路径:
~/
但是:
/home/YOUR_USER/…我认为在您的情况下,连接字符串是正确的,您只需要使用
ssl\u ca
选项,而不是ssl\u cert
:
SQLALCHEMY_DATABASE_URI = 'mysql://user:password@myrds.rds.amazonaws.com.rds.amazonaws.com/miro_dev?ssl_ca=rds-combined-ca-bundle.pem'
我可以通过添加
?sslmode=verify ca&sslrootcert=rds组合ca bundle.pem
连接到连接字符串
这是来自postgresql文档以及
如果您不关心验证rds,可以将sslmode更改为require。我从下载了pem文件