mysql8重置root用户密码的完整步骤
前言
最近很多新入职的同事问这个问题,特别是通过homebrew自动安装的mysql,其版本默认已经是8.0了,由于增加了一些安全策略等限制,所以修改用户密码会稍微麻烦些,索性就把这个总结贴一下吧。
下面话不多说了,来一起看看详细的介绍吧
步骤如下:
1、首先查看root用户相关信息,在mysql数据库的user表中:
selecthost,user,authentication_string,pluginfromuser;
host:允许用户登录的ip‘位置'%表示可以远程;
user:当前数据库的用户名;
authentication_string:用户密码;在mysql5.7.9以后废弃了password字段和password()函数;
plugin:密码加密方式;
如果发现root用户的authentication_string字段下有内容,先将其设置为空:
usemysql; updateusersetauthentication_string=''whereuser='root';
2、重启mysql服务,mac里直接命令把服务关闭:
mysql.serverstop
或者把mysql进程kill掉。然后在启动mysql服务:
mysql.serverstart
3、用root用户登录,因为已经把authentication_string设置为空,所以可以免密码登录:
mysql-uroot-p passwrod:
不需要输入密码,直接回车即可
4、进入mysql库,使用ALTER修改root用户密码:
ALTERuser'root'IDENTIFIEDBY'123456';
语句中的root需要跟你实际user表里root用户存的是root还是root@localhost而定,由于我这里把密码改成了123456这样比较简单的格式,可能mysql8默认密码策略不允许,非要改的话可以先修改一下密码策略:
setglobalvalidate_password.length=6; setglobalvalidate_password.policy='LOW'; FLUSHPRIVILEGES;
这里把密码长度由默认的8位改成了6位,并且密码策略级别由MEDIUM改成了LOW。如果要查看密码校验相关设置的话可以直接查询系统变量:
SHOWVARIABLESLIKE'validate_password.%';
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。