ubuntu16.04 mysql 5.7.23 忘记root密码的应对方案

虽然网络上已经有很多mysql重置root密码的方法,但是大多不能准确适配自己的软件环境:ubuntu 16.04 + mysql 5.7。 他们提到的/etc/my.cnf在我的环境中压根不存在,并且修改密码时所用的user表字段名也有差异,在一些探索后给出一个解决方案。

  1. 关闭msyql的密码验证
1
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]后面添加skip-grant--tables
image.png

  1. 重启mysql服务
1
sudo /etc/init.d/mysql restart
  1. 登陆mysql修改密码

此时不用输入密码就可以登陆mysql的root账号,运行如下命令修改root密码。

1
2
3
4
use mysql;
update user set authentication_string=PASSWORD("这里输入你要改的密码") where User='root'; #更改密码
update user set plugin="mysql_native_password"; #如果没这一行可能也会报一个错误,因此需要运行这一行
flush privileges; #更新所有操作权限

  1. skip-grant--tables去除
  2. 重启mysql服务

之后再登陆mysql就需要密码验证了

0%