朋友最近开始学服务器,mysql密码忘了又不会弄,让我帮忙解决一下。重置或修改mysql的root密码这种事平时很少做,还是得google辅助一下,于是弄完了写篇博客记录一下,方便若干月后又有人遇到这种问题到时候忘得差不多还有google一下。
在root用户密码重置上,mysql5.7和5.6的区别在于user表中的字段不同,在之前的版本中,密码字段的字段名是 password,5.7版本改为了 authentication_string
流程如下:
1.关闭mysql服务
service mysql stop
或者直接杀死mysql相关进程
killall -TERM mysqld
2. 用以下命令启动MySQL,以不检查权限的方式启动;
mysqld_safe --skip-grant-tables &
(需要先进入mysql的bin目录,通常为cd /usr/local/mysql/bin )
3. 然后用空密码方式使用root用户登录 MySQL;
mysql -u root
4. 修改root用户的密码;
MySQL>update user set authentication_string = password('root'), password_expired = 'N', password_last_changed = now() where User = 'root'; MySQL> flush privileges;
MySQL> quit
(语句记得区分大小写,在之前的版本中,密码字段的字段名是 password,5.7版本改为了 authentication_string)
重新启动MySQL,就可以使用新密码登录了。