如何配置Django使用mysql-connector-python替代mysqlclient?
Django 4.1用mysql-connector-python替代mysqlclient配置方案
正确配置数据库引擎
要跳过mysqlclient改用mysql-connector-python,必须把settings.py里的数据库ENGINE设为mysql.connector.django,完整配置示例:
DATABASES = { 'default': { 'ENGINE': 'mysql.connector.django', 'NAME': '你的目标MySQL数据库名', 'USER': 'MySQL用户名', 'PASSWORD': 'MySQL密码', 'HOST': 'localhost', 'PORT': '3306', 'OPTIONS': { 'charset': 'utf8mb4', 'autocommit': True, }, } }
解决“无法导入后端”的问题
之前提示'mysql.connector.django'不是可用的数据库后端,按以下步骤排查:
- 先确认mysql-connector-python安装路径正确:执行
pip3 show mysql-connector-python,查看输出的Location是否在当前Python环境的site-packages目录下 - 如果用了虚拟环境,必须激活环境后再安装依赖和运行
manage.py - 要是仍无法识别,在
settings.py顶部手动注册后端:
import django from django.conf import settings if not settings.configured: django.setup() try: from mysql.connector.django import base django.db.backends.register_backend('mysql.connector.django', base.DatabaseWrapper) except ImportError: pass
验证配置有效性
配置完成后先执行python manage.py inspectdb,如果能正常输出MySQL里的表结构(哪怕是空的),说明连接没问题,再运行python manage.py migrate就不会再提示mysqlclient相关错误了。
数据迁移补充
别忘了先备份sqlite3的数据:
python manage.py dumpdata > data.json
MySQL配置好并完成migrate后,导入数据:
python manage.py loaddata data.json
内容的提问来源于stack exchange,提问作者JM1MBP2021
相关产品推荐
相关产品推荐

