python - 与 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
解决方案
解决方案是降级openssl。
conda install openssl=1.0.2p
请参阅本主题以获取更多信息:
https://github.com/ContinuumIO/anaconda-issues/issues/10646
还有这个其他问题。
推荐阅读
- android - 无法在 android 模块上导入 .tflite 模型
- outlook - 在 Outlook 中附加的最近项目不同
- node.js - 得到“ERR_CRYPTO_INVALID_IV”。为什么?
- javascript - 如何清理任何请求或任何页面
- reactjs - MongoDB过滤和排序数组
- three.js - 创建比实际场景对象更大的点击目标的有效方法
- react-native - 在 react-native 项目中我收到错误 - 无法解析 /src/overflowMenu/OverflowMenuContext
- python - 使用 Python 进行 Elasticsearch 批量插入 - 套接字超时错误
- angular - 如何在 Angular Mat 卡片内容中翻译 html 标签
- bitbucket - 如何完全控制其他人的私有 bitbucket 存储库