我正在开发一个测试项目作为练习,当我尝试将其迁移到数据库(MariaDB PhpMyAdmin)时,我收到此错误“django.db.utils.OperationalError:(2026,'TLS / SSL错误:需要SSL ,但服务器不支持')"
这就是我在
settings.py
中写的:
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'"},
}
}
我已经安装了mysqlclient。
首先,错误表明:您的 mariaDB 服务器需要 ssl 连接,但 django 应用程序中的设置未配置为使用 ssl。
您需要通过修改 .
cnf
或 .ini
文件来重新配置 mariaDB 服务器以支持 ssl。
[mysqld]
ssl-ca = /path-to-ca-cert.pem
ssl-cert = /path-to-server-cert.pem
ssl-key = /path-to-server-key.pem
并在您的 django 应用程序中添加
'OPTIONS'
字段。
DATABASES = {
...
'OPTIONS' : {
'ssl': {
'ca': '/path-to-ca-cert.pem',
'cert': '/path-to-server-cert.pem',
'key': '/path-to-server-key.pem',
}
}
...
如果您不想启用 ssl,您可以将 mariaDB 配置为允许非 ssl 连接。只需修改您的
.cnf
文件即可。
[mysqld]
require_secure_transport = OFF
并通过命令重启 mariaDB 服务器
sudo systemctl restart mariadb
.
另外检查必要的 python 包以支持 ssl,例如 -
mysqlclient
或 PyMySQL