首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django连接远程Mysql OperationalError 2026

Django连接远程Mysql OperationalError 2026
EN

Stack Overflow用户
提问于 2019-11-23 03:40:59
回答 1查看 1.2K关注 0票数 0

我几天都在使用Django + mysql。今天早上,我突然发现我无法与远程mysql连接。

代码语言:javascript
复制
% python manage.py makemigrations

它提高了

django.db.utils.OperationalError: (2026, 'SSL connection error: SSL_CTX_set_tmp_dh failed')

也是当

代码语言:javascript
复制
python manage.py runserver

这是我的环境:

macOS 10.15 + Django 2.2.6 + MySQL 5.7 (在远程服务器上,ubuntu18.04)+python3.6.8(使用conda )

我一直在寻找一些解决方案,比如:

  • 降级openssl

包openssl冲突: openssl=1.0.2r python=3.6.8 -> opensslversion=‘>=’>=‘.1.1a,<1.2a’

  • 在.conf文件中添加use_pure=True

没有什么改变,

  • 在.conf文件中添加skip_ssl没有改变

备注

  • 在服务器上(我部署了我的站点,ubuntu18.04),我的站点使用gunicorn +Nginx
  • 运行良好,直到今天所有的事情都运行得很好。当我发现这个问题时,
  • 网站崩溃了,但是当我重新启动它时运行良好。
  • ,我想可能是服务器上的一些更新(自动升级)导致了这个问题,但是还没有找到。

F 222

我的一些代码

代码语言:javascript
复制
# setting.py


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'OPTIONS': {
            'read_default_file': mysqlPath,
            'init_command': 'SET default_storage_engine=INNODB',
        },
    }
}

# my_remote.cnf (which define the 'mysqlPath' in setting.py)

[client]
database = mydatabase
user = myusername
password = mypassword   
default-character-set = utf8
host = myremotehost
port = 3306
use_pure = True
skip-ssl
skip_ssl
skip-ssl = True
skip_ssl = True
EN

回答 1

Stack Overflow用户

发布于 2019-11-23 05:23:31

这是因为您的服务器尚未设置为SSL (目前为止)。因此,错误是由服务器端引起的.

正如前面提到并成功尝试的那样,解决方案是在开发过程中使服务器作好SSL准备,或者将skip_ssl设置为true

https://dev.mysql.com/doc/refman/5.7/en/using-encrypted-connections.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59004332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档