您现在的位置是:首页 > 编程语言学习 > 前端编程语言 > 文章正文 前端编程语言

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

2022-09-02 10:11:27 前端编程语言

简介相信用过很多Django makemigrations的人都会遇到过makemigrations时会发生报错,下面这篇文章主要给大家介绍了关于Django执行python manag...

相信用过很多Django makemigrations的人都会遇到过makemigrations时会发生报错,下面这篇文章主要给大家介绍了关于Django执行python manage.py makemigrations报错的解决方案,需要的朋友可以参考下!

1.环境

mysql 8.0

Django 3.2

pycharm 2021.11

2. (No changes detected)及解决

2.1 问题情景

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

报错

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

2.2 原因分析

MySQL 8.x加密方式:caching_sha2_passwordMySQL 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进行登录(这种方式打开后直接输入密码即可)。

查看你的账号加密方式

  1. use mysql  
  2. select user,plugin from user 
  3. mysql> use mysql 
  4. Database changed 
  5. mysql> select user,plugin from user; 
  6. +------------------+-----------------------+ 
  7. | user | plugin| 
  8. +------------------+-----------------------+ 
  9. | cyk  | caching_sha2_password | 
  10. | mysql.infoschema | caching_sha2_password | 
  11. | mysql.session| caching_sha2_password | 
  12. | mysql.sys| caching_sha2_password | 
  13. | root | caching_sha2_password | 
  14. +------------------+-----------------------+ 

输入下面的指令进行修改


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

再次查看

  1. mysql> select user,plugin from user; 
  2. +------------------+-----------------------+ 
  3. | user | plugin| 
  4. +------------------+-----------------------+ 
  5. | cyk  | caching_sha2_password | 
  6. | mysql.infoschema | caching_sha2_password | 
  7. | mysql.session| caching_sha2_password | 
  8. | mysql.sys| caching_sha2_password | 
  9. | root | mysql_native_password | 
  10. +------------------+-----------------------+ 

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

3.1 问题情景

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

报错

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

3.2 原因分析

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

3.3 解决方案

关闭ssl

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

  1. mysql> SHOW VARIABLES LIKE '%ssl%'

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

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

重启mysql服务重新执行命令

  1. mysql> SHOW VARIABLES LIKE '%ssl%'

 

相关文章

站点信息