• 执行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 

    运行正常了,没有报错。

  • 相关阅读:
    springboot 整合 dubbo 的简单实现
    20-SpringCloudAlibaba-1
    重新整理 .net core 实践篇 ———— linux上排查问题实用工具 [外篇]
    基于 docker 搭建 grafana+prometheus 监控资源之mysql+docker+alertmanager配置(二)(超详细版)
    虚拟化基本知识及virtio-net初探
    企业即时通讯怎样为企业实现移动办公效率的极致化?
    Oracle连接和使用
    PASS计算样本量(1)---完全随机设计时两样本率比较
    计算机系统基础期末复习
    postgresql常用命令帮助
  • 原文地址:https://blog.csdn.net/xionghui2007/article/details/132753754