破解/重设mysql数据库密码

windows下破解mysql密码:

1.cmd

2.net stop mysql

3.打开第一个命令行窗口切换到mysql安装目录下的bin目录。执行mysqld-nt --skip-grant-tables

4.打开第二个命令行窗口,mysql -u root -p

5.use mysql;

show tables;

select * from user;
update user set password=password("abc123") where user='root';

6. 在任务管理器中,结束mysqld-nt的进程。

7. 执行net restart mysql重新启动mysql服务就可以用新密码登陆mysql。

------------------------------------------------------------------------------------------------------

linux下破解mysql密码:
方法一、

在my.ini (linux下是/etc/my.conf)的[mysqld]字段加入:
skip-grant-tables
重启mysql服务,这时的mysql不需要密码即可登录数据库

然后进入mysql

mysql -u root -p
mysql>use mysql;
mysql>update user set password=password("abc123") where user='root';
mysql>flush privileges;
运行之后最后去掉my.ini中的skip-grant-tables.

重启mysqld即可。

 方法二、

# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit

# /etc/init.d/mysql restart
# mysql -uroot -p

Enter password: <输入新设的密码newpassword>

 

------------------------------------------------------------------------------------------------------

 mysql密码修改

方法一 mysqladmin -u root -p password mypasswd 输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。
 把命令里的root改为你的用户名,你就可以改你自己的密码了。
当然如果你的mysqladmin连接不上mysql server,或者你没有办法执行mysqladmin, 那么这种方法就是无效的。
 而且mysqladmin无法把密码清空。
下面的方法都在mysql提示符下使用,且必须有mysql的root权限:
方法二 mysql> INSERT INTO mysql.user (Host,User,Password) VALUES(%,jeffrey,PASSWORD(iscuit));
mysql> FLUSH PRIVILEGES 确切地说这是在增加一个用户,用户名为jeffrey,密码为biscuit。
 在《mysql中文参考手册》里有这个例子,所以我也就写出来了。  注意要使用PASSWORD函数,然后还要使用FLUSH PRIVILEGES。  方法三 和方法三一样,只是使用了REPLACE语句  mysql> REPLACE INTO mysql.user (Host,User,Password) VALUES(%,jeffrey,PASSWORD(iscuit));  mysql> FLUSH PRIVILEGES 方法四 使用SET PASSWORD语句,  mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD(iscuit);  你也必须使用PASSWORD()函数, 但是不需要使用FLUSH PRIVILEGES。  方法五 使用GRANT ... IDENTIFIED BY语句  mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY iscuit;  这里PASSWORD()函数是不必要的,也不需要使用FLUSH PRIVILEGES。  注意: PASSWORD() [不是]以在Unix口令加密的同样方法施行口令加密。  方法七 update user set password=PASSWORD("新密码") where user='root';

--------------------------------------------------------

据说可以用直接修改user表文件的方法: 
关闭MySQL,Windows下打开Mysql\data\mysql,有三个文件user.frm,user.MYD,user.MYI找个知道密码的MySQL,替换相应的这三个文件,如果user表结构没改过,一般也没人去改,替换user.MYD就可以了。 
也 可以直接编辑user.MYD,找个十六进制编辑器,UltraEdit就有这个功能。关闭MySQL,打开user.MYD。将用户名root后面的八 个字符改为565491d704013245,新密码就是123456。或者将它们对应的十六进制数字,(左边那里,一个字符对应两个数字),改 为 00 02 02 02 02 02 02 02,这就是空密码,在编辑器右边看到的都是星号*,看起来很象小数点。重开MySQL,输入root和 你的新密码。

版权所有:《太阳花工作室》 => 《破解/重设mysql数据库密码
本文地址:http://bg.artuion.com/win_lin_mac/29.html
除非注明,文章均为 《太阳花工作室》 原创,欢迎转载!转载请注明本文地址,谢谢。