【发布时间】: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包(mysqlclient,sqlalchemy),重新安装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...有人有解决方案吗?
-
也为我工作!!赞!!