在linux下安装mysql5.7+版本,如果忘记密码需要做以下几步:
1、停止Mysql服务(有的文章说可以不停,建议还是停止,减少不必要的麻烦)
2、进入/etc/my.cnf(一般都会放在这个目录下,如果有特殊的,自己使用搜索功能找到就行),在最后加上:skip-grant-tables
3、启动mysql
service mysqld start(这是centos 7的启动命令,根据自己的系统及版本使用正确命令启动即可)
4、进入mysql
mysql -uroot -p
回车后输入密码(任意输入)
5、修改mysql.user表中的密码字段(新版mysql已经弃用password这个字段,采用的是authentication_string加密字段)
修改语句:update mysql.user set authentication_string=password('你的明文密码') where user='root';
--注:password()函数是对明文密码进行加密,另外新版的mysql密码对长度和复杂度都有要求,要同时包含小写大写字母和数字,长度不能小于8位。修改密码不成功的应该就是这个问题导致的。
6、支持远程访问
同样是在mysql.user表中,root用户的host字段默认是Localhost 是无法支持远程访问,虚拟机里安装,本机访问一样属于远程访问。因此需要将host字段的值进行修改
修改语句: update mysql.user set Host='%' where user='root';
7、以上修改完成后,退出mysql 然后在/etc/my.cnf里注释掉或去掉 skip-grant-tables 保存后,启动mysql服务和端口即可。