この方法で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
[解決策]
これはドライバの問題のようです。 python 3に対してmysqlclient
を試してみたところ、このエラーが発生しました。次に、推奨されたとおりにmysql.connector
を試してみましたが、(sqlalchemyドキュメントに記載されているように)エンコーディングの問題が発生しました) 。最後に、sqlalchemyで動作するように見えるpymysql
ドライバーで終わりました。
Mysqlclientパッケージをアップグレードすると、問題が修正されました。