美文网首页
win10下解决Django出现的?: (mysql.W002)

win10下解决Django出现的?: (mysql.W002)

作者: 丙吉 | 来源:发表于2022-01-26 15:48 被阅读0次

问题:

在练习Django模型时,运行

python manage.py migrate TestModel

出现

?: (mysql.W002) MariaDB Strict Mode is not set for database connection 'default'
image.png

环境

windows 10
python 3.8
navicat

解决方法

打开settings.py文件,在DATABASES变量定义处下面添加,

DATABASES['OPTIONS']['init_command']  = "SET sql_mode='STRICT_TRANS_TABLES'"

或如下方式

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',    # 数据库引擎
        'NAME': 'test', # 数据库名称
        'HOST': '127.0.0.1', # 数据库地址,本机 ip 地址 127.0.0.1
        'PORT': 3306, # 端口
        'USER': 'root',  # 数据库用户名
        'PASSWORD': '123456', # 数据库密码
        'OPTIONS':{
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
            'charset': 'utf8mb4'
        }
    }
}
image.png

原因

可按问题的提示,打开如下网址:
https://docs.djangoproject.com/en/3.2/ref/databases/#mysql-sql-mode
大意为:
从MySQL 5.7开始,sql_mode选项的默认值包含STRICT_TRANS_TABLES。
当数据在插入时被截断时,这个选项会将警告升级为错误,因此Django强烈建议为MySQL激活一个严格模式以防止数据丢失(STRICT_TRANS_TABLES或STRICT_ALL_TABLES)。

image.png

参考:
https://blog.csdn.net/win_turn/article/details/55205751

相关文章

网友评论

      本文标题:win10下解决Django出现的?: (mysql.W002)

      本文链接:https://www.haomeiwen.com/subject/thunhrtx.html