数据库迁移:
迁移是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服务器就没有任何问题了,(即我的问题到这就解决了)