MySQL密码的恢复方法(一)

1、修改MySQL登录设置:
  1. [root@master ~]# vi /etc/my.cnf
  2. # 在[mysqld]的段中加上一句:skip-grant-tables 保存并且退出vi。

2、重启mysqld

[root@master ~]# /etc/init.d/mysqld restart ( service mysqld restart )3 mysql -uroot -p
mysql> use mysql ;
mysql> update user set password = password ( ‘new-password’ ) where user = ‘root’ ;
修改MySQL密码 - 图1
# 运行报错则改为 “update mysql.user set authentication_string=password(‘seczone’) where user=’root’;”
修改MySQL密码 - 图2

3、刷新权限

mysql> flush privileges ;
mysql> quit;

4、恢复MySQL的登录设置

[root@master ~]# vi /etc/my.cnf
#将刚才在[mysqld]的段中加上的skip-grant-tables删除,保存并且退出。

5、重启mysqld

[root@master ~]# /etc/init.d/mysqld restart (service mysqld restart)
# 重新登录成功 ,root用户设置ok。
修改MySQL密码 - 图3

MySQL密码的恢复方法(二)

有可能你的系统没有 safe_mysqld 程序(比如我现在用的 ubuntu操作系统, apt-get安装的mysql) , 下面方法可以恢复

1、停止mysqld

[root@master ~]# /etc/init.d/mysql stop
# (你可能有其它的方法,总之停止mysqld的运行就可以了)

2、启动MySQL

以不检查权限的方式启动
[root@master ~]# mysqld —skip-grant-tables &

3、空密码方式登录 MySQL

[root@master ~]# mysql -uroot

4、修改root用户密码

mysql> update mysql.user set password=password(‘newpassword’) where user=’root’;
mysql> flush privileges;
mysql> quit

5、重启MySQL

[root@master ~]# /etc/init.d/mysql restart
# 使用新密码 newpassword 登录