【问题标题】:Python SQL connection error (2006, 'SSL connection error: SSL_CTX_set_tmp_dh failed')Python SQL 连接错误(2006,'SSL 连接错误:SSL_CTX_set_tmp_dh failed')
【发布时间】:2018-12-17 16:43:54
【问题描述】:

我曾经以这种方式连接到我的 AWS-RDS 实例

import MySQLdb

db = MySQLdb.connect(host=os.getenv('RDS_ENDPOINT'),
                     user=os.getenv('RDS_USER'),
                     passwd=os.getenv('RDS_PWD'),
                     db=os.getenv('RDS_DB'))

或者在sqlalchemy的帮助下,但今天似乎拒绝处理错误(2006, 'SSL connection error: SSL_CTX_set_tmp_dh failed')

我尝试更新所有python包(mysqlclientsqlalchemy),重新安装mysqlclient-dev,手动重新安装OpenSSL v1.1.1a,但仍然是同样的错误。

[编辑]

我设法使用 MySQL CLI 连接到同一个数据库

mysql --user=$RDS_USER --host=$RDS_ENDPOINT --password=$RDS_PWD $RDS_DB

[解决方案]

这似乎是一个驱动程序问题。我尝试使用mysqlclient for python 3 并收到此错误。接下来,我按照建议尝试了mysql.connector,但遇到了编码问题(如 sqlalchemy 文档中所述)。最后,我以pymysql 驱动程序结束,它似乎与 sqlalchemy 一起工作。

【问题讨论】:

  • 驱动程序问题?你确定你说的不是图书馆?但事实上,切换到 pymysql 也为我做了这项工作。
  • 我在 anaconda 环境中安装 mysqlclient 时遇到了同样的问题。我卸载了它“conda uninstall mysqlclient”并用pip(pip install mysqlclient)再次安装。那时效果很好。
  • 这对我不起作用,由于文件内查询的问题,我无法切换到 pymysql...有人有解决方案吗?
  • 也为我工作!!赞!!

标签: python mysql ssl


【解决方案1】:

升级mysqlclient包解决了这个问题。

【讨论】:

  • 谢谢,它也解决了我的问题,你节省了我的时间。
  • 不适合我。我尝试将 openssl 降级到 1.0.2r,它也没有降级,因为它与名为 protobuf 的包冲突。我也问过这个问题,但没有得到任何答案:stackoverflow.com/questions/58958531/…
猜你喜欢
  • 2019-04-22
  • 1970-01-01
  • 2019-11-03
  • 2012-11-18
  • 1970-01-01
  • 2016-05-07
  • 2014-02-06
  • 2018-08-16
  • 1970-01-01
相关资源
最近更新 更多