Django迁移MariaDB时报错:需SSL但服务器不支持
解决Django连接MariaDB时的SSL错误
错误信息
django.db.utils.OperationalError: (2026, 'TLS/SSL error: SSL is required, but the server does not support it')
当前数据库配置
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'schooldb', 'USER': 'root', 'PASSWORD': '', 'HOST': '127.0.0.1', 'PORT': '3307', # 'OPTIONS': {'init_command': "SET SQL_MODE='STRICT_TRANS_TABLES'"}, } }
解决方案
- 启用数据库配置的
OPTIONS,添加SSL参数强制关闭SSL连接,修改后配置如下:DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'schooldb', 'USER': 'root', 'PASSWORD': '', 'HOST': '127.0.0.1', 'PORT': '3307', 'OPTIONS': { 'init_command': "SET SQL_MODE='STRICT_TRANS_TABLES'", 'ssl': {'ssl-mode': 'DISABLED'} }, } } - 若上述配置无效,可尝试简化SSL参数:
'OPTIONS': { 'init_command': "SET SQL_MODE='STRICT_TRANS_TABLES'", 'ssl': False }
原因:本地MariaDB服务器未启用SSL支持,但mysqlclient默认尝试使用SSL连接,通过显式关闭SSL要求即可解决该错误。
内容的提问来源于stack exchange,提问作者jan
相关产品推荐
相关产品推荐

