Попытка подключиться к экземпляру RDS MySQL через базы данных dict в файле settings.py приводит к django.db.utils.OperationalError: (2026, «Ошибка подключения SSL: сбой SSL_CTX_set_tmp_dh»).
Код ошибки похож на django.db.utils.OperationalError: (2026, «Ошибка подключения SSL: сбой SSL_CTX_set_tmp_dh») , поэтому я попытался использовать bin / mysql_ssl_rsa_setup для создания файлов SSL и RSA по умолчанию ,
Настройка (аналогично Ошибка подключения SSL при подключении к RDS MySQL из Django )
- Стандартное приложение Django
- Экземпляр MySQL RDS с группой безопасности, разрешающей подключения со всех IP-адресов
- Пользователь MySQL настроен на разрешение подключений с любого хоста
- Pem Amazon был загружен и указан в настройках Django
Работает соединение через cli, как и в интерпретаторе через PyMySql.
Успешное соединение PyMySql и запрос выглядят так:
db = pymysql.connect(user=os.environ['DEV_DATABASE_USERNAME'],
password=os.environ['DEV_MYSQL_PASSWORD'],
host=os.environ['DEV_DATABASE_HOST'],
cursorclass=pymysql.cursors.DictCursor,
database='dev'),
ssl={'ssl':{'ca':<PATH TO CA CERT>}})
Я попытался проверить, что путь к ca является абсолютным, и это так, и убедиться, что я не использую python для его построения, как в Ошибка подключения SSL при подключении к RDS MySQL. из Джанго .
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'dev',
'USER': os.environ['DEV_DATABASE_USERNAME'],
'HOST': os.environ['DEV_DATABASE_HOST'],
'PASSWORD': os.environ['DEV_MYSQL_PASSWORD'],
'OPTIONS': {
'ssl': { 'ca': <PATH TO CA CERT> },
}
}
}