Django执行python manage.py makemigrations报错的解决方案分享

目录
  • 1.环境
  • 2. (No changes detected)及解决
    • 2.1 问题情景
    • 2.2 原因分析
    • 2.3 修改方式
  • 3. (2026, ‘SSL connection error:unknown error number‘) 及解决
    • 3.1 问题情景
    • 3.2 原因分析
    • 3.3 解决方案
  • 总结

1.环境

mysql 8.0

Django 3.2

pycharm 2021.11

2. (No changes detected)及解决

2.1 问题情景

# 迁移数据库
python manage.py makemigrations
python manage.py migrate

报错

RuntimeWarning: Got an error checking a consistent migration history performed
for database connection 'default': (2059, <NULL>)
warnings.warn
 (No changes detected)

2.2 原因分析

MySQL 8.x加密方式:caching_sha2_password
MySQL 5.x加密方式为:mysql_native_password
所以要改成mysql_native_password

2.3 修改方式

由cmd进入命令行

登录到mysql: mysql -u username -p password

参数说明:[-u]后面接的是登录数据库的账号,[-p]后面是密码

如果无法登录,可能的原因是环境变量中PATH变量没有加入MySQL的目录,可以添加环境变量或在开始菜单中找到MySQL 8.0 Command Line Client进行登录(这种方式打开后直接输入密码即可)。

查看你的账号加密方式

use mysql
select user,plugin from user
mysql> use mysql
Database changed
mysql> select user,plugin from user;
+------------------+-----------------------+
| user             | plugin                |
+------------------+-----------------------+
| cyk              | caching_sha2_password |
| mysql.infoschema | caching_sha2_password |
| mysql.session    | caching_sha2_password |
| mysql.sys        | caching_sha2_password |
| root             | caching_sha2_password |
+------------------+-----------------------+

输入下面的指令进行修改

mysql> alter user '用户名'@'localhost' identified with mysql_native_password by '你的密码';

再次查看

mysql> select user,plugin from user;
+------------------+-----------------------+
| user             | plugin                |
+------------------+-----------------------+
| cyk              | caching_sha2_password |
| mysql.infoschema | caching_sha2_password |
| mysql.session    | caching_sha2_password |
| mysql.sys        | caching_sha2_password |
| root             | mysql_native_password |
+------------------+-----------------------+

3. (2026, ‘SSL connection error:unknown error number‘) 及解决

3.1 问题情景

# 迁移数据库
python manage.py makemigrations
python manage.py migrate

报错
Windows下django.db.utils.OperationalError: (2026, ‘SSL connection error: unknown error number‘)

3.2 原因分析

较高版本的mysql的ssl默认是开启的

3.3 解决方案

关闭ssl

登录mysql之后,输入该命令:

mysql> SHOW VARIABLES LIKE '%ssl%';

修改配置文件my.ini(可能要通过属性修改权限,否则无法修改成功)

# 路径:C:\ProgramData\MySQL\MySQL Server 8.0
[mysqld]
skip_ssl  # 忽略ssl

重启mysql服务重新执行命令

mysql> SHOW VARIABLES LIKE '%ssl%';

总结

到此这篇关于Django执行python manage.py makemigrations报错解决的文章就介绍到这了,更多相关执行python manage.py makemigrations报错内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python manage.py runserver流程解析

    这篇文章主要介绍了python manage.py runserver流程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 版本 python27 django 1.0 搭建可运行的环境 创建python27 虚拟环境 github 下载 django-1.0.tar.gz(1.0 版本的django) 解压 可以看到,有个 demo 在 examples 目录 把 django 目录拷贝到 examples 下面,这样 example 可以

  • Django执行python manage.py makemigrations报错的解决方案分享

    目录 1.环境 2. (No changes detected)及解决 2.1 问题情景 2.2 原因分析 2.3 修改方式 3. (2026, ‘SSL connection error:unknown error number‘) 及解决 3.1 问题情景 3.2 原因分析 3.3 解决方案 总结 1.环境 mysql 8.0 Django 3.2 pycharm 2021.11 2. (No changes detected)及解决 2.1 问题情景 # 迁移数据库 python mana

  • 执行Python程序时模块报错问题

    1. 在执行python程序时遇到 'ModuleNotFoundError: No module named 'xxxxx'' : 例如: 图片中以导入第三方的 'requests' 模块为例,此报错提示找不到requests模块.在python中,有的 模块是内置的(直接导入就能使用)有的模块是第三方的,则需要安装完成后才能导入使用,若未 安装直接导入使用就会出现上述报错!这里介绍最快的解决方法: 1)通过 pip (python软件包工具) 来安装所需要使用的第三方模块: 打开cmd输入

  • 关于django python manage.py startapp 应用名出错异常原因解析

    如题,在控制台运行python manage.py startapp sales 建立一个应用报错异常 1.应用名不能包含下划线等字符 所以app-demo 不能作为应用名被定义 2.manage.py 报错 这时我们要打开manage.py文件 修改前: if name == "main": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "djangodeom.setting") from dj

  • 解决python中import文件夹下面py文件报错问题

    如下所示: 在需要导入的那个文件夹里面新建一个 __init__.py文件,哪怕这个文件是空的文件也可以. 补充知识:python中import其他目录下的文件出现问题的解决方法 在使用python进行编程的时候,import其他文件路径下的.py文件时报错 Traceback (most recent call last): File "download_and_convert_data.py", line 44, in <module> from .datasets i

  • django如何自定义manage.py管理命令

    每次在启动Django服务之前,我们都会在终端运行python manage.py xxx的管理命令.其实我们还可以自定义管理命令,这对于执行独立的脚本或任务非常有用,比如清除缓存.导出用户邮件清单或发送邮件等等. 自定义的管理命令不仅可以通过manage.py运行,还可以通过Linux或Celery的crontab服务将其设成定时任务.本文主要讲解如何自定义Django-admin命令,并提供一些演示案例. 自定义Django-admin命令一共分三步:创建文件夹布局.编写命令代码和测试使用.

  • Django migrate报错的解决方案

    前言 在讲解如何解决migrate报错原因前,我们先要了解migrate做了什么事情,migrate:将新生成的迁移脚本.映射到数据库中.创建新的表或者修改表的结构. 问题1:migrate怎么判断哪些迁移脚本需要执行? 它会将代码中的迁移脚本和数据库中django_migrations中的迁移脚本进行对比,如果发现数据库中,没有这个迁移脚本,那么就会执行这个迁移脚本. 问题2:migrate做了什么事情 将相关的迁移脚本翻译成SQL语句,在数据库中执行这个SQL语句. 如果这个SQL语句执行没

  • Python编程源码报错解决方法总结经验分享

    目录 一.前言 二.解决过程 三.总结 一.前言 最近本都是开开心心的打开电脑写一些祖传BUG 但一个报错阻碍了我写BUG的进度! 这年代还有能阻碍我写BUG的报错??? 二.解决过程 一个新项目要做token认证,所以拷了原来的项目代码 没错,高级CV工程师就是我!!! 加入了一些token配置信息后,启动项目准备调试. 启动很成功没有任何报错. 然后启动前端项目开始一天的写BUG时间! 结果登录的时候就报错了!! 把之前项目的代码拷过来还会报错? 有点奇怪,但都是小场面! 开始调试 结果一看

  • Python导包模块报错的问题解决

    Python导包模块报错的问题 Moelimoe import报错No module named "xxx"的问题如何将指定目录作为项目根目录,让项目根目录下的包/模块都可以直接导入?(linux下)Python导入模块时,解释器如何定位模块:1.当前目录2.内置模块列表3.sys.path列表的目录 由于python没有定位到模块目录时出现的No module named "xxx"问题,大概有两种解决思路:1.在sys.path永久加入需要导入的模块的父目录:2

  • Python使用pip安装报错:is not a supported wheel on this platform的解决方法

    本文讲述了Python使用pip安装报错:is not a supported wheel on this platform的解决方法.分享给大家供大家参考,具体如下: 可能的原因1:安装的不是对应python版本的库,下载的库名中cp27代表python2.7,其它同理. 可能的原因2:这个是我遇到的情况(下载的是对应版本的库,然后仍然提示不支持当前平台) 在https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy中,我下载到的numpy库文件名: n

随机推荐