web-dev-qa-db-ja.com

Python SQL接続エラー(2006、 'SSL接続エラー:SSL_CTX_set_tmp_dhが失敗しました')

この方法で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

[解決策]

これはドライバの問題のようです。 python 3に対してmysqlclientを試してみたところ、このエラーが発生しました。次に、推奨されたとおりにmysql.connectorを試してみましたが、(sqlalchemyドキュメントに記載されているように)エンコーディングの問題が発生しました) 。最後に、sqlalchemyで動作するように見えるpymysqlドライバーで終わりました。

7
GuillaumeA

Mysqlclientパッケージをアップグレードすると、問題が修正されました。

1
alireza heidari