Ошибка SSL в Django MySQL Connection (ошибка 2026 SSL_CTX_set_tmp_dh) - PullRequest
0 голосов
/ 21 июня 2019

Попытка подключиться к экземпляру 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> },
    }
}

}

1 Ответ

0 голосов
/ 23 июня 2019

Я решил эту проблему, создав совершенно новый проект Django с точно таким же файлом settings.py и обновив все пакеты в файле needs.txt, поэтому проблема заключалась в некоторой несовместимости между mysqlclient, PyMySQL и MySQL 5.6.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...