Windows下找回mysql管理员密码

来源:互联网 发布:如何加入淘宝全球购 编辑:程序博客网 时间:2024/05/21 10:44

网上很多关于破解mysql密码的教程和说明,大多数的方法都是实用的,但是我在动手操作的时候遇到很多问题,觉得有必要对某些步骤作点说明,如下是一个常用的修改密码的方法。


1.关闭正在运行的MySQL。可以使用命令来关闭,打开命令行窗口,停止mysql服务:Net stop mysql 。
2.打开DOS窗口,转到mysql安装目录的bin目录下,比如c:/mysql/bin。
3.跳过权限检查,在命令提示框里输入mysqld-nt --skip-grant-tables回车。如果没有出现提示信息,那说明运行成功了。注意这里有个问题,有的mysql版本的bin目录下没有mysqld-nt.exe文件,不过你的bin目录下一定有mysqld.exe文件。网上查了下他们的区别:

      mysqld  是windows 9 x 下面启动数据服务器的程序
     mysqld-nt  是windows nt  2000 xp 2003 等 下面启动数据服务器的程序

由此说明二者都是同样的功能,只是运行的环境不一样,那么我们在没有mysqld-nt的情况下,可使用mysqld替代,如:

mysqld --skip-grant-tables。同样地,如果没有出现提示信息,则运行成功了。

4.重新打开一个命令提示窗口,因为刚才那个窗口已经不能动了,同样转到mysql/bin目录。
5.在命令提示符下输入mysql命令,然后回车,如果成功,将出现MySQL提示符 >
6. 连接权限数据库>use mysql; (>是本来就有的提示符,注意加上最后的分号)
6.接下来就是修改密码> update user set password=password("123456") where user="root"; (别忘了最后的分号)括号里面的数字就是新的密码,这里我设置为123456,如果你想换成其他的密码,则把123456替换成你的密码就行了。

这里还需要注意的一个问题是,如果你修改了root帐户,那么需要把user修改成你自己设置的帐户,在执行完上面的操作后,你注意观察执行的结果,有个query OK, 1 row affectd,如果是0 row affectd,说明该帐户没有修改成功,可能是你输入的帐户不对,比如我说的修改了root帐户的情况。多注意每次执行命令后的结果,可以帮助我们了解修改成功与否。
7.刷新权限,这个步骤必须执行>flush privileges;
8.退出 > /q 或 exit 都行
9.使用任务管理器,找到mysqld-nt或者mysqld的进程,结束该进程!

10.重新打开mysql的登录界面,使用用户名root和刚才设置的新密码123456登录。如果登录还是失败,并且报告这样的错误:

"ERROR 2003: Can't connect to MySQL server on 'localhost' (10061)"

这说明你的MySQL还没有启动。
解决办法:在管理工具--服务里面,手动启动mysql的服务就OK了。

 

 

另附上linux下破解方法:

 
如果 MySQL 正在运行,首先杀掉该进程: killall -TERM mysqld。
接着通过命令启动 MySQL :bin/safe_mysqld --skip-grant-tables 就可以不需要密码就进入 MySQL 了。
接下来与windows下操作类似,以下简述:
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
重新杀掉 MySQL进程 ,用正常方法启动 MySQL 。

 

以上就是我在找回密码时的理解,希望与大家分享,有问题还望各位大虾提出!!!