这个错误表明Django无法识别或加载MySQL数据库后端。以下是完整的解决方案:
安装MySQL客户端驱动: 选择以下任意一个驱动安装:
# MySQL官方驱动(推荐)
pip install mysqlclient
# 或纯Python实现的替代方案
pip install pymysql
如果使用pymysql,需要在项目的__init__.py
中添加:
import pymysql
pymysql.install_as_MySQLdb()
检查DATABASES配置: 确保settings.py中的配置完全正确:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '数据库名',
'USER': '用户名',
'PASSWORD': '密码',
'HOST': 'localhost', # 或数据库服务器IP
'PORT': '3306', # 默认MySQL端口
'OPTIONS': {
'charset': 'utf8mb4', # 推荐字符集
},
}
}
验证依赖版本:
检查虚拟环境: 如果你使用虚拟环境,请确保是在激活的环境中安装的驱动:
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
pip install mysqlclient
系统级依赖(Linux): Ubuntu/Debian系统需要安装开发包:
sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
python -c "import MySQLdb; print(MySQLdb.__version__)"
应该能正确输出版本号而无报错。
完成以上步骤后,再次运行Django项目应该能正常连接MySQL数据库。如果仍有问题,可以提供完整的错误日志以便进一步诊断。