我正在尝试使用SSL和Flask SQLAlchemy连接到运行MySQL的云SQL实例。以下是我遵循的步骤:
- 我已经能够使用Cloud SQL Auth Proxy通过
127.0.0.1:3306
打开连接了 - 在这种配置中,我可以使用MySQL Workbench成功连接到数据库,所以我尝试使用SSL连接
- 我生成了客户端证书
- 我指定了以下连接参数:
current_app.config['SQLALCHEMY_POOL_RECYCLE'] = 280
current_app.config['SQLALCHEMY_POOL_TIMEOUT'] = 20
current_app.config['SQLALCHEMY_ENGINE_OPTIONS'] = {
'connect_args': {
'ssl': {
'cert': '~/AppData/Local/Google/Cloud SDK/Projects/SIF/certs/client-cert.pem',
'key': '~/AppData/Local/Google/Cloud SDK/Projects/SIF/certs/client-key.pem',
'ca': '~/AppData/Local/Google/Cloud SDK/Projects/SIF/certs/server-ca.pem'
}
}
}
现在,每当我试图打开连接时,我都会收到错误Lost connection to MySQL server during query
我在这里做错了什么?
附带问题:当从应用程序引擎连接到数据库时,我甚至需要尝试配置SSL吗?
如果您通过Cloud SQL Auth Proxy进行连接,则不需要也不支持客户端SSL证书。代理使用Cloud SQL处理身份验证和加密。如果添加SSL证书以连接到代理,则连接将失败,因为代理不需要该连接类型。