执行Django 的迁移命令报错[1193, Unknown system variable default_storage_engine]

在学习""编写你的第一个 Django 应用程序,第2部分"时候,遇到一个问题。

执行迁移命令 python manage.py makemigrations polls 后,报错:

migrations.py:109: RuntimeWarning: Got an error checking a consistent migration

history performed for database connection 'default': (1193, "Unknown system vari

able 'default_storage_engine'") RuntimeWarning,

网上查询确定原因是Django 和 mysql 版本不兼容导致的,需要匹配对应版本

Django连接MySql数据库之版本不兼容问题的解决办法

发现原来Django 3.2.18 不再支持 MySQL 5.5 ,必须5.6版本以上。

我本地装的是Django 3.2.18,Mysql 5.5,因此存在版本不兼容问题,就无法正常连接数据库了。这里提供了以下解决办法。

如何查看Django和mysql的版本呢?

查看Django版本:

1 cmd状态下 (注:管理员运行状态)

2 python -m django --version

查看MySql版本:

1 cmd命令下

2 mysql -u用户名 -P端口 -p密码

3 select version();

解决办法:

一、给Django进行版本降级

(阿~emmm... 正常人当然都不会采取这种方式啦,老纸辛苦安装的新版本干嘛要降级呢 [捂脸笑],下面我们主要来介绍第二个方法)

二、升级MySql版本:

本文是以 mysql 5.5 升级为 mysql 5.7.10为例。

1、这里我们进行手动安装配置MySql,首先卸载本地mysql,下载mysql 5.7.10的解压包,注意路径不要用中文,

2、然后在该目录下自建一个配置文件my.ini,添加如下配置信息。

mysql

#设置mysql客户端默认字符集

default-character-set=utf8

mysqld

#设置3306端口

port = 3306

#设置mysql的安装目录(这里是你解压后的路径)

basedir=C:\Program Files\MySQL\MySQL Server 5.7

#设置mysql数据库的数据的存放目录(要提前创建好 F:\MySQL Datafiles 文件夹)

datadir=F:\MySQL Datafiles

#允许最大连接数

max_connections=200

#服务端使用的字符集默认为8比特编码的latin1字符集

character-set-server=utf8

#创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

=======================================

重启mysql后,再去执行Django 的迁移命令 python manage.py makemigrations polls

运行正常了,没有报错。

相关推荐
用户2519162427112 小时前
Python之语言特点
python
刘立军3 小时前
使用pyHugeGraph查询HugeGraph图数据
python·graphql
数据智能老司机6 小时前
精通 Python 设计模式——创建型设计模式
python·设计模式·架构
数据智能老司机7 小时前
精通 Python 设计模式——SOLID 原则
python·设计模式·架构
c8i8 小时前
django中的FBV 和 CBV
python·django
c8i8 小时前
python中的闭包和装饰器
python
这里有鱼汤12 小时前
小白必看:QMT里的miniQMT入门教程
后端·python
TF男孩1 天前
ARQ:一款低成本的消息队列,实现每秒万级吞吐
后端·python·消息队列
该用户已不存在1 天前
Mojo vs Python vs Rust: 2025年搞AI,该学哪个?
后端·python·rust
站大爷IP1 天前
Java调用Python的5种实用方案:从简单到进阶的全场景解析
python