Django创建表时报错django.db.utils.InternalError: (1366问题解决记录

Posted 露麻麻

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django创建表时报错django.db.utils.InternalError: (1366问题解决记录相关的知识,希望对你有一定的参考价值。

问题出现

执行Python manage.py makemigrations生成创建表的py文件

执行python manage.py migrate创建数据表

界面出现报错

 

问题原因

网上搜索原因,是因为在model模块中配置了中文名称

    class Meta:
        # 设置Admin界面的显示内容
        verbose_name = \'歌曲动态\'
        verbose_name_plural = \'歌曲动态\'

而创建数据库默认的编码格式不是UTF-8,所以导致建表过程中报了数据库编码格式的错误

解决办法

方法一:

  model表中取消掉中文命名,然后再执行建表操作

方法二:

  删除创建的数据库,重新创建数据库执行命令指定编码格式CREATE DATABASE 数据库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

  修改setting.py中的数据库配置

  

DATABASES = {
    \'default\': {
        \'ENGINE\': \'django.db.backends.mysql\',
        # \'NAME\': os.path.join(BASE_DIR, \'db.sqlite3\'),
        \'HOST\':\'127.0.0.1\',
        \'PORT\':\'3306\',
        \'NAME\':\'guest\',
        \'USER\':\'root\',
        \'PASSWORD\':\'111111\',
        \'TEST\': {
            \'CHARSET\' : \'utf8\',
            \'COLLATION\':\'utf8_general_ci\'
        }
    }
}

再次执行python manage.py migrate后正常创建

参考地址:https://www.cnblogs.com/LOVEYU/p/10948289.html

 

以上是关于Django创建表时报错django.db.utils.InternalError: (1366问题解决记录的主要内容,如果未能解决你的问题,请参考以下文章

解决“django.db.utils.ProgrammingError: 关系 django_migrations 的权限被拒绝”的步骤

Django在使用models生成数据库表时报错: __init__() missing 1 required positional argument: 'on_delete'

django2.0 models.py创建外键时报错

pycharm新建django项目时报错

python3 django2.0 在生成数据库表时报错: TypeError: __init__() missing 1 required positional argument: 'o(代

pycharm新建django项目时报错