这个错误通常发生在 Django 尝试通过 SSL 连接到 MySQL 数据库时出现了问题。以下是几种可能的解决方案:
如果你在开发环境中不需要 SSL 加密,可以在数据库配置中禁用 SSL:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'your_db_name',
'USER': 'your_db_user',
'PASSWORD': 'your_db_password',
'HOST': 'your_db_host',
'PORT': 'your_db_port',
'OPTIONS': {
'ssl': {
'ssl_mode': 'DISABLED' # 禁用 SSL
}
}
}
}
如果确实需要 SSL 连接,确保提供正确的 SSL 证书:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'your_db_name',
'USER': 'your_db_user',
'PASSWORD': 'your_db_password',
'HOST': 'your_db_host',
'PORT': 'your_db_port',
'OPTIONS': {
'ssl': {
'ca': '/path/to/ca-cert.pem',
'cert': '/path/to/client-cert.pem',
'key': '/path/to/client-key.pem',
'ssl_mode': 'VERIFY_IDENTITY'
}
}
}
}
确保你使用的是最新版本的 MySQL 连接器:
pip install --upgrade mysqlclient # 如果使用 mysqlclient
# 或
pip install --upgrade mysql-connector-python # 如果使用官方连接器
确保 MySQL 服务器正确配置了 SSL 支持,并且客户端有权限使用 SSL 连接。
确保你的网络环境允许 SSL 连接,某些代理或防火墙可能会干扰 SSL 握手。
如果问题仍然存在,可能需要联系数据库管理员获取正确的 SSL 配置或检查服务器端的 SSL 设置。