一、此版本,修改root密码:
很多之前语句无效报错。亲测下面这语句有效,123456为设置的密码:
设置新密码的命令:
alter user 'root'@'localhost' identified by '123456';
二、修改root用户的加密方式:
1、登录mysql。
mysql -u root -p
2、通过执行以下命令查看对应用户的加密方式,也可以将user='root’改成比如user=‘test’,来查看用户test的加密方式。
use mysql;
select user,plugin from user where user='root';
3、执行命令修改加密方式
alter user 'root'@'localhost' identified with mysql_native_password by '你的密码';
4、使配置生效
flush privileges;
三、修改普通用户的加密方式:
比如:当使用mysql的可视化工具Navicat等,在进行初次连接数据库时,因为加密方式的原因报错,没办法连接成功;又或者连接 Django和Mysql配合使用,由于Django不支持新版本Mysql的加密方式,会出现如下两条报错,此时由于你Django项目的数据库用的用户非root,而是其他用户,所以需要修改其他用户的密码加密方式。
_mysql_exceptions.OperationalError: (2059, )
django.db.utils.OperationalError: (2059, )
修改方法:
1、输入登陆指令和密码并登陆:
mysql -u root -p
2、输入:
use mysql;
3、继续输入:
select user,host from user;
此时可以显示出各用户对应的host名,也就是修改指令中@后面的内容。
4、根据查询结果,紧接着输入修改加密方式指令:
例如:根据上面查询结果,test用户的host为%。所有指令如下:
alter user 'test'@'%' identified with mysql_native_password by 'test123';
5、使配置生效
flush privileges;