mysql数据库root密码忘记如何破解

第1步:停止MySQL进程的运行
[root@mysql-2 mysql]# service mysqld stop
Shutting down MySQL.. SUCCESS! 

第2步:修改配置文件
[root@mysql mysql]# vim /etc/my.cnf
[mysqld]
user=mysql     #指定启动MySQL进程的用户
skip-grant-tables  #跳过密码验证

第3步:启动MySQL进程
[root@mysql mysql]# service mysqld start  启动MySQL进程
Starting MySQL. SUCCESS! 

第4步:登录MySQL,不接密码直接登录
[root@mysql-2 mysql]# mysql  -uroot -p
Enter password: 

  mysql> alter user 'root'@'localhost' identified by  '123456'; --》会报错
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

mysql> flush privileges; 刷新权限(会加载原来没有加载的权限表--》用户名和密码所在的表user等)
当配置 skip-grant-tables 时,MySQL 会跳过用户权限验证,此时权限表(如 mysql.user)并未被加载到内存中。因此,直接执行 alter user 修改密码会失败(提示无法在该模式下执行)。


mysql>alter user  'root'@'localhost'  identified by '123456';
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye

第5步:重新修改mysql的配置文件
[mysqld]
socket=/data/mysql/mysql.sock
#skip-grant-tables           --》注释掉
第6步:刷新服务 
[root@mysql-2 mysql]# service mysqld restart  #重新刷新服务

第7步:验证修改密码是否成功
[root@mysql-2 mysql]# mysql  -uroot -p'123456'
mysql> 


另外一种方式:
    就是使用其他的管理员账号给别的用户重新设置密码

    可以在SQLyog里操作

    SET PASSWORD FOR 'root'@'localhost' = '123456';
    alter user  'root'@'localhost'  identified by '123456';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值