SSL连接到MySQL dB失败

时间:2019-05-22 04:31:28

标签: python mysql python-3.x ssl

我有一个在Amazon EC2实例(Linux)上运行的python脚本,该脚本从源中抓取数据并向我输出熊猫数据框。我想将此数据帧发送到Amazon RDS上的MySQL。但是当我运行脚本时,它引发了以下错误:

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

在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

2 个答案:

答案 0 :(得分:0)

尽管我使用PuTTy作为SSL来创建用于存储隧道的端口,但我有非常相似的东西。
确保在EC2实例和RDS之间也正确设置了安全组。

答案 1 :(得分:0)

解决方案是降级openssl。

conda install openssl=1.0.2p

有关更多信息,请参见此线程:

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

另外question