linux下忘记mysql root密码解决办法

前言:最近碰到一个客户设置错了mysql的密码导致登不上去mysql,但是重装又比较麻烦,刚好碰到了经过测试是可以实现的,首先讲一个,在 /etc/my.cnf 里面增加 skip-grant-tables,并重启mysql是可以不用密码直接登陆进去的,也就是说,理论上是不需要密码直接可以登上去的,下面开始:

1、编辑MySQL配置文件my.cnf

vi /etc/my.cnf #编辑文件,找到[mysqld],在下面添加一行skip-grant-tables

image.png

skip-grant-tables

:wq! #保存退出

service mysqld restart #重启MySQL服务

2、进入MySQL控制台

mysql -uroot -p #直接按回车,这时不需要输入root密码。

3、修改root密码

update mysql.user set authentication_string=password('123456') where User="root" and Host="localhost";

flush privileges; #刷新系统授权表

grant all on . to 'root'@'localhost' identified by '123456' with grant option;

4、取消/etc/my.cnf中的skip-grant-tables

vi /etc/my.cnf 编辑文件,找到[mysqld],删除skip-grant-tables这一行

:wq! #保存退出

5、重启mysql

service mysqld restart #重启mysql,这个时候mysql的root密码已经修改为123456

6、进入mysql控制台

mysql -uroot -p #进入mysql控制台

123456 #输入密码

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容