破解mysql root暗码的几种办法脚本之家alibaba - 凯发娱乐

破解mysql root暗码的几种办法脚本之家alibaba

2019-02-01 08:45:12 | 作者: 涵蕾 | 标签: 办法,运用,文件 | 浏览: 3325

网上撒播的几种破解mysql root暗码的几种办法: 办法一
运用phpmyadmin,这是最简略的了,批改mysql库的user表,不过别忘了运用PASSWORD函数。 办法二
运用mysqladmin,这是前面声明的一个特例。
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(’biscuit’));
mysql> FLUSH PRIVILEGES
切当地说这是在添加一个用户,用户名为jeffrey,暗码为biscuit。
在《mysql中文参考手册》里有这个比方,所以我也就写出来了。
留意要运用PASSWORD函数,然后还要运用FLUSH PRIVILEGES。 办法四
和办法三一样,仅仅运用了REPLACE句子
mysql> REPLACE INTO mysql.user (Host,User,Password)
VALUES(’%’,’jeffrey’,PASSWORD(’biscuit’));
mysql> FLUSH PRIVILEGES 办法五
运用SET PASSWORD句子,
mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD(’biscuit’);
拟也有必要运用PASSWORD()函数,可是不需求运用FLUSH PRIVILEGES。
办法六
运用GRANT ... IDENTIFIED BY句子
mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY ’biscuit’;
这儿PASSWORD()函数是不必要的,也不需求运用FLUSH PRIVILEGES。
留意: PASSWORD() [不是]以在Unix口令加密的相同办法实施口令加密。
MySQL 忘掉口令的解决办法
假如 MySQL 正在运转,首要杀之: killall -TERM mysqld。
发动 MySQL :bin/safe_mysqld skip-grant-tables &
就能够不需求暗码就进入 MySQL 了。
然后就是
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
从头杀 MySQL ,用正常办法发动 MySQL 。
mysql暗码清空
Windows:
1.用体系管理员登陆体系。
2.中止MySQL的效劳。
3.进入指令窗口,然后进入MySQL的装置目录,比方我的装置目录是c:\mysql,进入C:\mysql\bin
4.越过权限查看发动MySQL,
c:\mysql\bin>mysqld-nt skip-grant-tables
5.从头翻开一个窗口,进入c:\mysql\bin目录,设置root的新暗码
c:\mysql\bin>mysqladmin -u root flush-privileges password "newpassword"
c:\mysql\bin>mysqladmin -u root -p shutdown
将newpassword替换为你要用的root的暗码,第二个指令会提示你输入新暗码,重复第一个指令输入的暗码。
6.中止MySQL Server,用正常形式发动Mysql
7.你能够用新的暗码链接到Mysql了。 Unix&Linux:
1.用root或许运转mysqld的用户登录体系;
2.运用kill指令完毕掉mysqld的进程;
3.运用skip-grant-tables参数发动MySQL Server
shell>mysqld_safe skip-grant-tables &
4.为root@localhost设置新暗码
shell>mysqladmin -u root flush-privileges password "newpassword"
5.重启MySQL Server
mysql批改暗码
  mysql批改,可在mysql指令行履行如下:
  mysql -u root mysql
  mysql> Update user SET password=PASSWORD("new password") Where user=’name’;
  mysql> FLUSH PRIVILEGES;
  mysql> QUIT 教你如何将MySQL数据库的暗码康复 由于MySQL暗码存储于数据库mysql中的user表中,所以只需求将我windows 2003下的MySQL中的user表复制过来覆盖掉就行了。 在c:\mysql\data\mysql\(linux 则一般在/var/lib/mysql/mysql/)目录下有三个user表相关文件user.frm、user.MYD、user.MYI user.frm //user表款式文件 user.MYD //user表数据文件 user.MYI //user表索引文件 为稳妥起见,三个都复制过来,不过其实假如之前在要康复的那个MySQL上没有更改正表结构的话,只需复制user.MYD就行了 然后
#. /etc/rc.d/init.d/mysql stop
#. /etc/rc.d/init.d/mysql start
#mysql -u root -p XXXXXX
好了,能够用windows 2003下mysql暗码登陆了
mysql>use mysql
mysql>update user set Password=PASSWORD(’xxxxxx’) where User=’root’;
这时分会犯错,提示user表只要读权限 我剖析了一下原因,只这样的,由于user.*文件的权限分配是windows 2003下的,在windows 2003下我ls -l一看权限是666 在linux下我一看,拷过来后权限变成了600(其实正常情况下600就行了,只不过这儿的文件属主不是mysql,拷过来后的属主变为了root,所以会呈现权限不行,这时分假如你改成权限666则能够了,当然这样欠好,没有解决问题的本质),在/var/lib/mysql/mysql/下ls -l看了一下 再
#chown -R mysql:mysql user.*
#chmod 600 user.*
//OK,DONE 重起一下MYSQL 从头衔接
mysql>use mysql
mysql>update user set Password=PASSWORD(’xxxxxx’) where User=’root’;
mysql>FLUSH PRIVILEGES;
有一点值得留意:假如你windows 下mysql假如是默许装备的话,留意要还要履行
mysql>delete from user where User=’’;
mysql>delete from user where Host=’%’;
mysql>FLUSH PRIVILEGES;
好了,到这儿康复暗码进程就完成了 这个办法么就是有点局限性,你有必要也具有别的的user表文件 其他还有几种办法 其它办法一(这个是网上撒播较广的办法,mysql中文参考手册上的) 1. 向mysqld server 发送kill指令关掉mysqld server(不是 kill -9),寄存进程ID的文件通常在MYSQL的数据库地点的目录中。
killall -TERM mysqld
你有必要是UNIX的root用户或许是你所运转的SERVER上的平等用户,才干履行这个操作。 2. 运用`skip-grant-tables’ 参数来发动 mysqld。 LINUX下:
/usr/bin/safe_mysqld skip-grant-tables , windows下c:\mysql\bin\mysqld skip-grant-tables
3. 然后无暗码登录到mysqld server ,
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
。你也能够这样做:
`
mysqladmin -h hostname -u user password ’new password’’
4. 载入权限表:
`
mysqladmin -h hostname flush-privileges’
或许运用 SQL 指令
`FLUSH PRIVILEGES’
5. killall -TERM mysqld
6.用新暗码登陆 其它办法二 直接用十六进制修正器修正user.MYD文件 不过这个里边我要阐明一点,我这儿修正的时分发现个问题,加密的暗码串有些是接连存储的,有些的最终两位被切开了,后两位存储在后边其他地方.这一点我还没想理解.还有留意一点就是修正的是加密过的暗码串,也就是说你仍是需求别的有user表文件。这种办法和我最上面介绍的办法的差异在于,这种办法直接修正linux下的user表文件,就不需求从头改文件属主和权限了 批改一下:我在Windows下的实际操作如下 1.封闭正在运转的MySQL。 2.翻开DOS窗口,转到mysql\bin目录。 3.输入
mysqld-nt skip-grant-tables
回车。假如没有呈现提示信息,那就对了。 4.再开一个DOS窗口(由于方才那个DOS窗口现已不能动了),转到mysql\bin目录。 5.输入mysql回车,假如成功,将呈现MySQL提示符 > 6. 衔接权限数据库
>use mysql;
(>是原本就有的提示符,别忘了最终的分号)
6.改暗码:
> update user set password=password("123456") where user="root"; (别忘了最终的分号)
7.改写权限(有必要的过程)
>flush privileges;
8.退出
> \q
9.刊出体系,再进入,开MySQL,运用用户名root和方才设置的新暗码123456登陆。 听说能够用直接批改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和你的新暗码。
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表凯发娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章