Раньше я подключался к своему экземпляру 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
, но все равно та же ошибка.
[EDIT]
Мне удается подключиться к той же базе данных с помощью MySQL CLI
mysql --user=$RDS_USER --host=$RDS_ENDPOINT --password=$RDS_PWD $RDS_DB
[РЕШЕНИЕ]
Похоже, это проблема с драйвером,Я попытался с mysqlclient
для Python 3 и получил эту ошибку.Затем я попытался с mysql.connector
как рекомендовано, но у меня возникли проблемы с кодировкой (как указано в документе sqlalchemy).Наконец, я закончил с драйвером pymysql
, который, кажется, работает с sqlalchemy.