django .db.utils.OperationalError: (2026, «Ошибка подключения SSL: сбой SSL_CTX_set_tmp_dh») при подключении к локальному узлу MYSQL - PullRequest
1 голос
/ 11 февраля 2020

Я пытаюсь подключиться к Mysql серверу на локальном хосте из моего приложения django в Ubuntu 19.04. Раздел подключения к базе данных в settings.py выглядит следующим образом:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'app_datastore',
        'HOST' : '127.0.0.1',
        'USER': 'root',
        'PASSWORD': 'xxxx',
        'OPTIONS': {
                'ssl': {
                    'ca': '/var/lib/mysql/ca.pem',
                    'cert': '/var/lib/mysql/client-cert.pem',
                    'key': '/var/lib/mysql/client-key.pem'

                    }
            }
    }
}

Выдает ошибку:

django .db.utils.OperationalError : (2026, «Ошибка подключения SSL: сбой SSL_CTX_set_tmp_dh»)

Однако я могу подключиться к своему mysql как с терминала, так и с Dbeaver. mysql сервер работает.

Потоки Stackoverflow, которые я уже пробовал и не работает:

django .db.utils.OperationalError: ( 2026, «Ошибка подключения SSL: сбой SSL_CTX_set_tmp_dh»)

Ошибка подключения SSL при использовании MySQL Соединителя с Python

Python SQL ошибка соединения (2006, «Ошибка соединения SSL: сбой SSL_CTX_set_tmp_dh»)

Вот результаты моего списка пипсов:

Версия пакета


криптография cffi 1.14.0 2.8
Django 2.2.2
mysqlclient 1.4.6
Подушка 7.0.0
pip 20.0.2 pycparser 2.19
pyOpenSSL 19.0.0 pytz 2019.3 setuptools 45.2 .0 шесть 1.14.0 sqlparse 0.3.0
колесо 0.34.2

1 Ответ

0 голосов
/ 26 февраля 2020

Блог Адама Джонсона со ссылкой здесь предоставил мне разрешение (у меня работает Django 3.0 с / Python 3.7.4)

В моем файле settings.py я добавил следующие строки в его предложении:

# near the top
import pymysql

# then after the DATABASES entry further down...
DATABASES = { 
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'somedatabase',
         ...
}

# add these two lines... 
pymysql.version_info = (1, 4, 2, "final", 0)
pymysql.install_as_MySQLdb()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...