【问题标题】:Flask-SQLAlchemy ssl-connection with AWS RDS error带有 AWS RDS 错误的 Flask-SQLAlchemy ssl 连接
【发布时间】:2016-07-22 05:32:25
【问题描述】:

我正在尝试通过 ssl 将烧瓶应用程序 mysql 连接与 AWS RDS 连接,当我尝试像这样使用 mysql 客户端时它可以工作

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

我可以登录,但是当我尝试使用烧瓶应用程序时

SQLALCHEMY_DATABASE_URI = 'mysql://user:Password@myrds.rds.amazonaws.com.rds.amazonaws.com/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


    【解决方案1】:

    我能够通过添加来完成这项工作

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

    到连接字符串。

    这来自 postgresql 文档 here 以及 aws docs

    如果您不关心验证 rds,可以将 sslmode 更改为 require。我从here下载了pem文件。

    【讨论】:

      【解决方案2】:

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

      SQLALCHEMY_DATABASE_URI = 'mysql://user:password@myrds.rds.amazonaws.com.rds.amazonaws.com/miro_dev?ssl_ca=rds-combined-ca-bundle.pem'
      

      【讨论】:

        【解决方案3】:

        我这样做:

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

        【讨论】:

          猜你喜欢
          • 2020-09-15
          • 2020-05-18
          • 2021-10-20
          • 2013-01-28
          • 2020-06-20
          • 2020-03-10
          • 1970-01-01
          • 1970-01-01
          • 2016-03-03
          相关资源
          最近更新 更多