【Django】执行python manage.py makemigrations报错的解决方案

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 【Django】执行python manage.py makemigrations报错的解决方案

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 修改方式

  1. 由cmd进入命令行
  2. 登录到mysql: mysql -u username -p password

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

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

  3. 查看你的账号加密方式
    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 |
    +------------------+-----------------------+
    
  4. 输入下面的指令进行修改
    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

  1. 登录mysql之后,输入该命令:
    mysql> SHOW VARIABLES LIKE '%ssl%';
    
  2. 修改配置文件my.ini(可能要通过属性修改权限,否则无法修改成功)
    # 路径:C:\ProgramData\MySQL\MySQL Server 8.0
    [mysqld]
    skip_ssl  # 忽略ssl
    
  3. 重启mysql服务
  4. 重新执行命令
    mysql> SHOW VARIABLES LIKE '%ssl%';
    
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2天前
|
Python
Python使用飞桨报错NameError: name 'predict_system' is not defined问题处理
【5月更文挑战第12天】Python使用飞桨报错NameError: name 'predict_system' is not defined问题处理
39 1
|
2天前
|
前端开发 UED Python
Wagtail-基于Python Django的内容管理系统CMS实现公网访问
Wagtail-基于Python Django的内容管理系统CMS实现公网访问
|
2天前
|
中间件 Python
中间件应用Django Middleware(Python)
【5月更文挑战第3天】中间件应用Django Middleware(Python)
36 6
中间件应用Django Middleware(Python)
|
2天前
|
监控 开发者 Python
Python中记录程序报错信息的实践指南
Python中记录程序报错信息的实践指南
17 1
|
2天前
|
算法 Python
打造高效生产排程:Python在APS解决方案中的应用
打造高效生产排程:Python在APS解决方案中的应用
20 2
|
2天前
|
开发者 Python
【亮剑】Python中`List.append()`方法不起作用的原因及解决方案
【4月更文挑战第30天】本文探讨了Python中`List.append()`方法不起作用的原因及解决方案。问题可能源于变量作用域、可变类型与不可变类型混淆、函数内的局部变量、错误的赋值操作或并发修改。解决方法包括检查变量、确保正确操作列表、使用`global`关键字、避免错误赋值和采用同步机制处理并发问题。理解这些问题对于编写健壮的Python代码至关重要。
|
2天前
|
网络协议 算法 网络架构
Python网络编程之udp编程、黏包以及解决方案、tcpserver
Python网络编程之udp编程、黏包以及解决方案、tcpserver
|
2天前
|
运维 监控 Serverless
Serverless 应用引擎产品使用之阿里函数计算中在自定义环境下用debian10运行django,用官方层的python3.9,配置好环境变量后发现自定义层的django找不到了如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
22 3
|
2天前
|
C++ Python
python安装HLL报错unable to find vcvarsall.bat
通过上述方法之一,你应该能够解决"unable to find vcvarsall.bat"的错误,并成功安装HLL或其他需要编译的Python扩展。确保在安装之前先安装了Visual C++构建工具。
10 0
|
2天前
|
弹性计算 Serverless 应用服务中间件
Serverless 应用引擎操作报错合集之阿里函数计算中出现'python app.py'的错误如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
25 3