首页 > 解决方案 > 与 MySQL dB 的 SSL 连接失败

问题描述

我有一个在 Amazon EC2 实例 (linux) 上运行的 python 脚本,它从源中抓取数据并将 pandas 数据帧输出给我。我想将此数据帧发送到 Amazon RDS 上的 MySQL。但是当我运行脚本时,它会抛出以下错误:

sqlalchemy.exc.InterfaceError: (mysql.connector.errors.InterfaceError) 2026 (HY000): SSL 连接错误: SSL_CTX_set_tmp_dh failed

在 ec2 实例上执行脚本之前,我在本地机器上运行它,它工作正常。这意味着,我能够将数据发送到由我的刮刀刮取的 RDS。但现在我在 EC2 上运行脚本,它显示 SSL 连接错误。

我可能没有正确配置 EC2 实例,或者可能忘记安装某些东西。我不太使用 SSL,所以我发现很难弄清楚应该如何设置它。任何指示,即使是明显的指示,都可能在这个阶段有所帮助。

我已经尝试了一些我在堆栈上找到的解决方案,但都没有奏效。这是我连接到数据库的代码:

def dbConnect():
    end_point = xxx
    username = xxx
    password = xxx
    port=3306
    global dbname
    dbname=xxx
    conn = pymysql.connect(end_point, user=username,port=port,passwd=password, db=dbname)
    global eng
    eng=create_engine('mysql+mysqlconnector://xxx:xxx@xxx:3306')
    return dbname,eng

标签: pythonmysqlpython-3.xssl

解决方案


解决方案是降级openssl。

conda install openssl=1.0.2p

请参阅本主题以获取更多信息:

https://github.com/ContinuumIO/anaconda-issues/issues/10646

还有这个其他问题


推荐阅读