我曾经以这种方式连接到我的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
使用python 3并收到此错误。接下来,我尝试按照要求使用mysql.connector
,但是遇到了编码问题(如sqlalchemy文档中所述)。最后,我以pymysql
驱动程序结束,该驱动程序似乎可以与sqlalchemy一起使用。
答案 0 :(得分:1)
升级mysqlclient软件包解决了该问题。