缘起
在MySQL 8.04前,执行:SET PASSWORD=PASSWORD(‘[新密码]’);但是MySQL8.0.4开始,这样默认是不行的。因为之前MySQL的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”。现在我们只需要知道修改修改密码的方式变化了就可以了
解决方法
MySQL8.0以后的版本可以使用以下的命令去修改用户密码
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
FLUSH PRIVILEGES;
注意事项
“新密码”即要修改的密码
需要注意的是下面,因为我修改的root账号的权限,允许所有远程主机登录,所以用户后面的主机也需要进行相对应的修改:
'root'@'localhost' --》'root'@'%'
'root'@'localhost'中的'root'表示用户名,'localhost'表示可以登录的远程主机,具体的可以使用以下命令进行查询:
use mysql;
select user,host from user;
查询结果示例如下所示:如'root'@'%'即对应第一条结果:
mysql> use mysql;
Database changed
mysql> select user,host from user;
+------------------+-----------------+
| user | host |
+------------------+-----------------+
| root | % |
| LangedbUser_PbIf | langedbpwd_s400 |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
+------------------+-----------------+
5 rows in set (0.00 sec)