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

在Django中从SQLite切换至MySQL数据库遇迁移报错求助

解决Django使用mysql.connector.django迁移MySQL时报TypeError的问题

问题原因

这个错误主要是mysql-connector-python版本与当前Django版本不兼容,导致字符串和字节类型转换异常;此外,数据库配置缺少必要参数也可能引发部分表创建失败的情况。

分步解决方案

1. 安装兼容版本的mysql-connector-python

卸载现有版本,安装与Django版本匹配的稳定版(Django 3.2/4.x推荐安装8.0.33版本):

pip uninstall mysql-connector-python
pip install mysql-connector-python==8.0.33

2. 修正数据库配置参数

替换原SQLite配置为完整的MySQL配置,填写Cpanel提供的数据库信息,同时添加必要选项避免字符集和认证问题:

DATABASES = {
    'default': {
        'ENGINE': 'mysql.connector.django',
        'NAME': '你的Cpanel数据库名',  # 格式通常为cpanel用户名_数据库名
        'USER': 'MySQL用户名',
        'PASSWORD': 'MySQL密码',
        'HOST': 'localhost',         # Cpanel环境下默认值为localhost
        'PORT': '3306',
        'OPTIONS': {
            'charset': 'utf8mb4',
            'auth_plugin': 'mysql_native_password',
            'use_unicode': True,
        },
    }
}

3. 清理迁移残留并重新执行迁移

登录Cpanel的phpMyAdmin,删除已创建的两张不完整表:django_content_type和django_migrations,然后执行迁移命令:

python manage.py makemigrations
python manage.py migrate

4. 验证数据库用户权限

确认Cpanel中创建的MySQL用户拥有对应数据库的CREATE、ALTER、INSERT、UPDATE权限,缺少权限会导致部分表无法正常创建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 02:32:11