数据库迁移:
迁移是Django同步你对模型所做更改到你的数据库模式的方式

python manage.py makemigrations 将应用下的models.py文件生成一个中间文件,并保存在migrations文件夹中

python manage.py migrate 执行迁移程序实现迁移,将每个应用下的 migrations 目录中的中间文件同步回数据库。


**Django版本:**2.2.12
Mysql版本:8.0.24

在Django中进行数据迁移时,发生一下 2059 的错误。
在这里插入图片描述
经百度搜索后发现问题所在,故特此记录学习中遇见的问题。

问题所在: mysql 8.0版本的问题,
原因:
目前最新的mysql8.0对用户密码的加密方式为caching_sha2_password, Django暂时还不支持这种新增的加密方式。所以只需要将用户加密方式改为老的加密方式即可。

解决方案:

1.登录mysql,

mysql -u root -p

2.执行命令查看加密方式

use mysql;
select user,plugin from user where user=‘root’;

3.执行命令修改加密方式

alter user ‘root’@‘localhost’ identified with mysql_native_password by ‘你的密码’;

这里的密码需要与 setting.py 中的密码保持一直
在这里插入图片描述

4.属性权限使配置生效

flush privileges;

经过以上四个步骤重新设置mysql 8.0.x版本的加密方式后,再次启动Django服务器就没有任何问题了,(即我的问题到这就解决了)
在这里插入图片描述

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐