专业的编程技术博客社区

网站首页 > 博客文章 正文

django.db.utils.OperationalError: (2059, <NULL>) 解决方法

baijin 2024-09-10 11:05:10 博客文章 13 ℃ 0 评论

个人学习django遇坑及解决记录。

windows中django使用mysql(版本8.0.27),配置好setting.py,执行python manage.py migrate时出现以下错误:

django.db.utils.OperationalError:(2059,<NULL>)

上述错误原因是因为mysql8.0以上版本采用的加密方式由原来的mysql_native_password改为caching_sha2_password引起的,所以需要更改django使用的mysql用户加密方式为mysql_native_password。

解决方法如下:

第一步:登录mysql

命令:mysql -u root -p


第二步:查看用户加密方式:

命令:use mysql

命令:select user, plugin from user where user = '用户名';

第三步:查看用户登录允许的IP:

命令:select user,host from user;

第四步:更改用户密码加密方式:

命令:alter user '用户名'@'%' identified with mysql_native_password by '用户密码'

注意:命令中'用户名'@'%' 中的‘%’要与第三步查看中红箭头所指的相同。

第五步:重新查看用户密码加密方式,已更改为旧的加密方式:

命令:select user, plugin from user where user = '用户名';

完成以上步聚即已解决django中mysql8.0以上版本数据库连接中2059问题。重新进行Djanog迁移数据库,即可成功!

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表