【问题标题】:Lost connection to MySQL while connecting using SSL使用 SSL 连接时与 MySQL 的连接丢失
【发布时间】:2021-08-22 14:46:08
【问题描述】:

我正在尝试使用 SSL 和 Flask-SQLAlchemy 连接到运行 MySQL 的 Cloud SQL 实例。以下是我遵循的步骤:

  • 我已经能够使用 Cloud SQL Auth 代理通过 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

我在这里做错了什么?

附带问题:从 App Engine 中连接到数据库时,我什至需要尝试配置 SSL 吗?

【问题讨论】:

    标签: ssl flask-sqlalchemy google-cloud-sql pymysql


    【解决方案1】:

    如果您通过 Cloud SQL 身份验证代理进行连接,则不需要也不支持客户端 SSL 证书。代理使用 Cloud SQL 处理身份验证和加密。如果您添加 SSL 证书以连接到代理,则连接将失败,因为代理不期望该连接类型。

    【讨论】:

      猜你喜欢
      • 2019-12-31
      • 2017-11-05
      • 1970-01-01
      • 2020-09-21
      • 1970-01-01
      • 2016-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多