数据库迁移:
迁移是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服务器就没有任何问题了,(即我的问题到这就解决了)
Original: https://blog.csdn.net/qq_45720042/article/details/116459962
Author: 明 总 有
Title: Django数据迁移:django.db.utils.OperationalError: (2059, <NULL>) —-2059错误解决方案
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/736670/
转载文章受原作者版权保护。转载请注明原作者出处!