You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用WAMP Server连接Django与MySQL时遇Django.db.utils.NotSupportedError

Django连接WAMP MySQL触发NotSupportedError的解决方案

1. 排查MySQL与Django版本兼容性

  • 查看WAMP中MySQL版本:打开MySQL控制台执行 SELECT VERSION();
  • 核对版本匹配规则:
    • Django 3.2 支持 MySQL 5.7+ / 8.0
    • Django 4.x 要求 MySQL 5.7.8+ / 8.0
    • 旧版Django(如2.x)不兼容MySQL 8.0默认的caching_sha2_password认证插件,这是常见触发NotSupportedError的原因

2. 修改MySQL用户认证插件

若MySQL版本为8.0+,需将数据库用户的认证方式改为Django支持的mysql_native_password:

  1. 登录MySQL控制台:mysql -u root -p(WAMP默认root密码为空,直接回车)
  2. 查看当前用户认证插件:
    SELECT user, host, plugin FROM mysql.user WHERE user='你的Django数据库用户名';
    
  3. 切换认证插件:
    ALTER USER '你的用户名'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的数据库密码';
    FLUSH PRIVILEGES;
    

3. 检查DATABASE配置(settings.py)

确保配置项正确无误,示例:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '你的数据库名',
        'USER': '数据库用户名',
        'PASSWORD': '数据库密码',
        'HOST': 'localhost',
        'PORT': '3306',
        'OPTIONS': {
            'charset': 'utf8mb4',
        },
    }
}
  • 必须使用官方引擎django.db.backends.mysql,避免第三方引擎引发兼容问题
  • 确认WAMP的MySQL端口为默认的3306,HOST设为localhost

4. 安装正确的数据库驱动

卸载可能冲突的驱动(如pymysql),安装官方推荐的mysqlclient:

pip uninstall pymysql
pip install mysqlclient
  • Windows环境下若mysqlclient安装失败,可下载对应Python版本的预编译.whl文件本地安装

5. 验证连接

执行Django迁移命令测试连接:

python manage.py migrate

若仍报错,查看终端输出的详细错误栈,定位是否为数据库字符集不兼容、SQL特性不支持等问题

内容的提问来源于stack exchange,提问作者Ashok_dev_27

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 12:05:17