与AWS RDS错误烧瓶SQLAlchemy的SSL连接

问题描述 投票:3回答:3

我试图连接与AWS RDS通过SSL烧瓶应用MySQL连接,它的工作原理,当我尝试使用MySQL客户端这样的

mysql -u user -h myrds.rds.amazonaws.com -p --ssl-ca=rds-combined-ca-bundle.pem

我能够登录,但是当我与瓶的应用尝试

SQLALCHEMY_DATABASE_URI = 'mysql://user:[email protected]/miro_dev?ssl_cert=rds-combined-ca-bundle.pem'

它给我的错误

sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (2026, 'SSL connection error: Unable to get private key')

python mysql amazon-web-services flask aws-rds
3个回答
2
投票

我认为在你的情况下,连接字符串是正确的,你只需要使用ssl_ca选项,而不是ssl_cert

SQLALCHEMY_DATABASE_URI = 'mysql://user:[email protected]/miro_dev?ssl_ca=rds-combined-ca-bundle.pem'

1
投票

我能够加入到得到这个工作

?sslmode=verify-ca&sslrootcert=rds-combined-ca-bundle.pem

在连接字符串。

这来自PostgreSQL文档与here aws docs一起。

您可以更改sslmode要求,如果你不关心验证RDS。我下载了here PEM文件。


0
投票

我这样做:

...
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)

而且我建议不要输入路径类似如下:

~/...

但:

/家庭/ YOUR_USER / ...

© www.soinside.com 2019 - 2024. All rights reserved.