MySQL 5.7 修改账号密码

MySQL 5.7 修改账号密码

  • 1、概述
  • 2、更改密码
    • 2.1、寻找命令
    • 2.2、补充
  • 3、总结

1、概述

大家好,我是欧阳方超。
MySQL数据库安装后设置的密码太简单了, 近期安全检查,这种弱密码全部得修改,好吧那就开始改吧

2、更改密码

2.1、寻找命令

于是我找到之前我的一篇文章CentOS7.5安装MySQL8以及相关设置,从里面翻出命令,

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'newPassword888!';
Query OK, 0 rows affected (0.01 sec)

发现改完后,MySQL客户端工具使用旧密码依然能够连接,同事提醒说,你flush一下试试呢,

mysql> flush privileges;

于是我又执行了上面的命令,结果发现还是不行,后经分析,发现在mysqlu.user表中有两条记录的User字段值都为root,而这两条记录的Host字段值并不相等——一个是localhost另一个是%,到这里MySQL客户端依然能用旧密码登录的原因已经出来的,我上面改密码的命令中@后是localhost,也就是时只有本地连接时的密码被改变了,远程连接时的密码并没有被更改,客户端工具连接相当于远程连接。
真相大白之后,想要使远程连接时的密码也被改变,那就容易办到了,@后使用%应该就可以,其实改密码的命令不止一个,下面就记录一个用于更改MySQL密码的其他命令,如下:

update mysql.user set authentication_string=password('newPassword888!') where user='root' and Host = '%';

然后执行:

flush privileges;

此时远程连接的密码就被修改了。

2.2、补充

既然都说到更改密码了,那就再记录一条修改密码的命令吧:

set password for 'root'@'localhost'=password('newPassword888!');

3、总结

这篇文章写完,我发现一个问题,如果我使用了update mysql.user set authentication_string…这个命令修改密码,并且只在where后指定user=‘root’ 这一个条件,那么不管是本地还是远程连接的密码不就一次性修改了吗,闹了半天玩了个乌龙球。不过似乎也有个新发现,那就是同样是root用户,可以为root用户设置,在本地连接和远程连接时可以设置不同的密码,话说有人这么玩吗,哈哈哈。

我是欧阳方超,把事情做好了自然就有兴趣了,如果你喜欢我的文章,欢迎点赞、转发、评论加关注。我们下次见。

你可能感兴趣的:(数据库,mysql,数据库)