Linux下MYSQL忘记密码怎么办?

以下将是重置MySQL密码教程
本教程环境:

1
2
3
4
5
[root@localhost ~]# cat /etc/redhat-release 
CentOS release 6.5 (Final)
[root@localhost ~]# mysql --version
mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1
[root@localhost ~]#
step1.停止在运行的mysql服务
1
[root@localhost ~]# service mysqld stop
step2.编辑配置文件etc/my.cnf ,添加如下图所示内容:
1
2
3
[root@localhost ~]# vim /etc/my.cnf 

skip-grant-tables

mark
保存退出!

step3.重启服务
1
[root@localhost ~]# service mysqld restart
step4.进如mysql数据库,修改密码
1
2
3
4
5
6
7
8
[root@localhost ~]# mysql -uroot

mysql> show databases;
mysql> use mysql
mysql> show tables;
mysql> update user set password=PASSWORD('123456') where user='root';
MySQL> flush privileges; #刷新权限
mysql> quit

注:update user set password=PASSWORD('newpassword') where user='root'可以修改密码
但是在mysql 5.7版本中不存在password字段,所以我们要用下面命令修改:
update user set authentication_string=password('123456') where user='root';

step5.删除 step2 在 etc/my.cnf 加入的skip-grant-tables,然后保存退出,重启服务!(本人测试,必须重启服务!)