数据库迁移:
迁移是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

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐