|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
”由于MySQL已经是一个运行了众多知名Web2.0网站的数据,包括Craigslist、Digg、Wikipedia和Google等,或许我们可以说每一个Web2.0公司实质上是一个使用MySQL数据库的公司。几种破解MySQLroot暗码的几种办法:
办法一
利用phpmyadmin,这是最复杂的了,修正mysql库的user表,不外别忘了利用PASSWord函数。
办法二
利用mysqladmin,这是后面声明的一个惯例。
mysqladmin-uroot-ppasswordmypasswd
输出这个命令后,必要输出root的原暗码,然后root的暗码将改成mypasswd。
把命令里的root改成你的用户名,你就能够改你本人的暗码了。
固然假如你的mysqladmin毗连不上mysqlserver,大概你没有举措实行mysqladmin,那末这类办法就是有效的,并且mysqladmin没法把暗码清空。
上面的办法都在mysql提醒符下利用,且必需有mysql的root权限:
办法三
mysql>InsertINTOmysql.user(Host,User,Password)
VALUES(’%’,’jeffrey’,PASSWORD(’biscuit’));
mysql>FLUSHPRIVILEGES
切实地说这是在增添一个用户,用户名为jeffrey,暗码为biscuit。
在《mysql中文参考手册》里有这个例子:
注重要利用PASSWORD函数,然后还要利用FLUSHPRIVILEGES。
办法四
和办法三一样,只是利用了REPLACE语句
mysql>REPLACEINTOmysql.user(Host,User,Password)
VALUES(’%’,’jeffrey’,PASSWORD(’biscuit’));
mysql>FLUSHPRIVILEGES
办法五
利用SETPASSWORD语句,
mysql>SETPASSWORDFOR[email=jeffrey@]jeffrey@"%[/email]"=PASSWORD(’biscuit’);
拟也必需利用PASSWORD()函数,可是不必要利用FLUSHPRIVILEGES。
办法六
利用GRANT...IDENTIFIEDBY语句
mysql>GRANTUSAGEON*.*TO[email=jeffrey@]jeffrey@"%[/email]"IDENTIFIEDBY’biscuit’;
这里PASSWORD()函数是不用要的,也不必要利用FLUSHPRIVILEGES。
注重:PASSWORD()[不是]以在Unix口令加密的一样办法实施口令加密。
MySQL健忘口令的办理举措
假如MySQL正在运转,起首杀之:killall-TERMmysqld。
启动MySQL:bin/safe_mysqld--skip-grant-tables&
就能够不必要暗码就进进MySQL了。
然后就是
>usemysql
>updateusersetpassword=password("new_pass")whereuser="root";
>flushprivileges;
从头杀MySQL,用一般办法启动MySQL。
mysql暗码清空
Windows:
1.用体系办理员上岸体系。
2.中断MySQL的服务。
3.进进命令窗口,然落后进MySQL的安装目次,好比我的安装目次是c:mysql,进进C:mysqlin
4.跳过权限反省启动MySQL,
c:mysqlin>mysqld-nt--skip-grant-tables
5.从头翻开一个窗口,进进c:mysqlin目次,设置root的新暗码
c:mysqlin>mysqladmin-urootflush-privilegespassword"newpassword"
c:mysqlin>mysqladmin-uroot-pshutdown
将newpassword交换为你要用的root的暗码,第二个命令会提醒你输出新暗码,反复第一个命令输出的暗码。
6.中断MySQLServer,用一般形式启动Mysql
7.你能够用新的暗码链接到Mysql了。
Unix&linux:
1.用root大概运转mysqld的用户登录体系;
2.使用kill命令停止失落mysqld的历程;
3.利用--skip-grant-tables参数启动MySQLServer
shell>mysqld_safe--skip-grant-tables&
4.为[email=root@localhost]root@localhost[/email]设置新暗码
shell>mysqladmin-urootflush-privilegespassword"newpassword"
5.重启MySQLServer
mysql修正暗码
mysql修正,可在mysql命令行实行以下:
mysql-urootmysql
mysql>UpdateuserSETpassword=PASSWORD("newpassword")Whereuser=’name’;
mysql>FLUSHPRIVILEGES;
mysql>QUIT
教你怎样将MySQL数据库的暗码恢复
由于MySQL暗码存储于数据库mysql中的user表中,以是只必要将我windows2003下的MySQL中的user表拷贝过去掩盖失落就好了。
在c:mysqldatamysql(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/mysqlstop
#./etc/rc.d/init.d/mysqlstart
#mysql-uroot-pXXXXXX
好了,能够用windows2003下mysql暗码上岸了
mysql>usemysql
mysql>updateusersetPassword=PASSWORD(’xxxxxx’)whereUser=’root’;
这时候候会堕落,提醒user表只要读权限
我剖析了一下缘故原由,只如许的,由于user.*文件的权限分派是windows2003下的,在windows2003下我ls-l一看权限是666
在linux下我一看,拷过去后权限酿成了600(实在一般情形下600就好了,只不外这里的文件属主不是mysql,拷过去后的属主变成了root,以是会呈现权限不敷,这时候候假如你改成权限666则能够了,固然如许欠好,没有办理成绩的本色),在/var/lib/mysql/mysql/下ls-l看了一下再
#chown-Rmysql:mysqluser.*
#chmod600user.*
//OK,DONE
重起一下MYSQL
从头毗连
mysql>usemysql
mysql>updateusersetPassword=PASSWORD(’xxxxxx’)whereUser=’root’;
mysql>FLUSHPRIVILEGES;
有一点值得注重:假如你windows下mysql假如是默许设置的话,注重要还要实行
mysql>deletefromuserwhereUser=’’;
mysql>deletefromuserwhereHost=’%’;
mysql>FLUSHPRIVILEGES;
好了,到这里恢复暗码历程就完成了
这个办法么就是有点范围性,你必需也具有别的的user表文件
其他另有几种办法
别的办法一(这个是网下流传较广的办法,mysql中文参考手册上的)
1.向mysqldserver发送kill命令关失落mysqldserver(不是kill-9),寄存历程ID的文件一般在MYSQL的数据库地点的目次中。
killall-TERMmysqld
你必需是UNIX的root用户大概是你所运转的SERVER上的一律用户,才干实行这个操纵。
2.利用`--skip-grant-tables’参数来启动mysqld。LINUX下:
/usr/bin/safe_mysqld--skip-grant-tables,windows下c:mysqlinmysqld--skip-grant-tables
3.然后无暗码登录到mysqldserver,
>usemysql
>updateusersetpassword=password("new_pass")whereuser="root";
>flushprivileges;
你也能够如许做:
mysqladmin-hhostname-uuserpassword’newpassword’’
4.载进权限表:
mysqladmin-hhostnameflush-privileges’
大概利用SQL命令
FLUSHPRIVILEGES’
5.killall-TERMmysqld
6.用新暗码上岸
别的办法二
间接用十六进制编纂器编纂user.MYD文件
不外这个内里我要申明一点,我这里编纂的时分发明个成绩,加密的暗码串有些是一连存储的,有些的最初两位被切开了,后两位存储在前面其他中央.这一点我还没想分明.另有注重一点就是编纂的是加密过的暗码串,也就是说你仍是必要别的有user表文件。这类办法和我最下面先容的办法的区分在于,这类办法间接编纂linux下的user表文件,就不必要从头改文件属主和权限了
修改一下:我在Windows下的实践操纵以下
1.封闭正在运转的MySQL。
2.翻开DOS窗口,转到mysqlin目次。
3.输出
mysqld-nt--skip-grant-tables
回车。假如没有呈现提醒信息,那就对了。
4.再开一个DOS窗口(由于方才谁人DOS窗口已不克不及动了),转到mysqlin目次。
5.输出mysql回车,假如乐成,将呈现MySQL提醒符>
6.毗连权限数据库
>usemysql;
(>是原本就有的提醒符,别忘了最初的分号)
6.改暗码:
>updateusersetpassword=password("123456")whereuser="root";(别忘了最初的分号)
7.革新权限(必需的步骤)
>flushprivileges;
8.加入
>q
9.刊出体系,再进进,开MySQL,利用用户名root和方才设置的新暗码123456上岸。
听说能够用间接修正user表文件的办法:
封闭MySQL,Windows下翻开Mysqldatamysql,有三个文件user.frm,user.MYD,user.MYI找个晓得暗码的MySQL,交换响应的这三个文件,假如user表布局没悔改,一样平常也没人往改,交换user.MYD就能够了。
也能够间接编纂user.MYD,找个十六进制编纂器,UltraEdit就有这个功效。封闭MySQL,翻开user.MYD。将用户名root前面的八个字符改成565491d704013245,新暗码就是123456。大概将它们对应的十六进制数字,(右边那边,一个字符对应两个数字),改成0002020202020202,这就是空暗码,在编纂器右侧看到的都是星号*,看起来很象小数点。重开MySQL,输出root和你的新暗码。
列举选择MySQL的理由的最困难的地方在于,如何对这些理由进行排序。MySQL学习教程这就如同我们经常争论的故事:先有鸡还是先有蛋? |
|