小工具知识网

当前位置: 首页 > 行业知识 > MySQL Strict Mode is not set for database connection ‘default‘

行业知识

MySQL Strict Mode is not set for database connection ‘default‘

2026-10-20 07:36:14 来源:互联网转载

在使��� DJango 框架执行迁移文件的命令时,可以看到出现如下警告:

(ll_env) D:\workspace\workspace-mengll\learning-log>python manage.py migrate

System check identified some issues:

WARNINGS:

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

        HINT: MySQL's Strict Mode fixes many data integrity problems in MySQL, such as data truncation upon insertion, by escalating warnings into errors. It is strongly recommended you activate it. See: https://docs.djangoproject.com/en/5.0/ref/databases/#mysql-sql-mode

Operations to perform:

  Apply all migrations: admin, auth, contenttypes, learning_logs, sessions

Running migrations:

  Applying learning_logs.0001_initial... OK

(ll_env) D:\workspace\workspace-mengll\learning-log>

虽然可以看到迁移文件执行成功,且数据库中也创建成功了对应的表,但对于稍有强迫症的我们来说总感觉不爽,需要把警告干掉才行,去掉警告信息的配置方式如下:

修改 DJango 创建的应用程序下的 settings.py 配置文件,找到数据库信息配置的部分,添加 sql_mode 配置即可,如下:

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

后续再执行迁移文件,可以看到警告已消除。

上一篇:中国国家机房在哪里?

下一篇:Win10系统DIY安装指南,轻松掌握安装技巧,一键搞定!