MySQL忘記密碼恢復(fù)密碼的實(shí)現(xiàn)方法
一、服務(wù)器環(huán)境
1、系統(tǒng)windows2003 中文企業(yè)版 sp2
2、mysql 5.1.55
3、php 5.2.17
4、IIS 6.0
二、破解過程
1、停止mysql服務(wù)(以管理員身份,在cmd命令行下運(yùn)行)使用如下命令:
net stop mysql

2、.使用命令啟動(dòng)mysql數(shù)據(jù)庫,命令如下
mysqld --skip-grant-tables 或者 mysqld-nt --skip-grant-tables

3.新開一個(gè)cmd窗口,進(jìn)行如下命令操作
1、mysql -uroot
2、update mysql.user set password=password('root') where user='你的密碼';
如圖:
4、打開任務(wù)管理器,停止mysql,mysqld進(jìn)程,使用net start mysql啟動(dòng)mysqld服務(wù),就可以使用root用戶 root密碼進(jìn)入數(shù)據(jù)庫了(這步可以省略重啟機(jī)器)
mysql5.1管理員密碼破解到此結(jié)束。
1. 向mysqld server 發(fā)送kill命令關(guān)掉mysqld server(不是 kill -9),存放進(jìn)程ID的文件通常在MYSQL的數(shù)據(jù)庫所在的目錄中。
killall -TERM mysqld
你必須是UNIX的root用戶或者是你所運(yùn)行的SERVER上的同等用戶,才能執(zhí)行這個(gè)操作。
2. 使用`--skip-grant-tables' 參數(shù)來啟動(dòng) 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. 載入權(quán)限表: `mysqladmin -h hostname flush-privileges' ,或者使用 SQL 命令`FLUSH PRIVILEGES'。
5.killall -TERM mysqld
6.用新密碼登陸
修正一下:我在Windows下的實(shí)際操作如下
1.關(guān)閉正在運(yùn)行的MySQL。
2.打開DOS窗口,轉(zhuǎn)到mysql\bin目錄。
3.輸入mysqld-nt --skip-grant-tables回車。如果沒有出現(xiàn)提示信息,那就對(duì)了。
4.再開一個(gè)DOS窗口(因?yàn)閯偛拍莻€(gè)DOS窗口已經(jīng)不能動(dòng)了),轉(zhuǎn)到mysql\bin目錄。
5.輸入mysql回車,如果成功,將出現(xiàn)MySQL提示符 >
6. 連接權(quán)限數(shù)據(jù)庫>use mysql; (>是本來就有的提示符,別忘了最后的分號(hào))
6.改密碼:> update user set password=password("123456") where user="root"; (別忘了最后的分號(hào))
7.刷新權(quán)限(必須的步驟)>flush privileges;
8.退出 > \q
9.注銷系統(tǒng),再進(jìn)入,開MySQL,使用用戶名root和剛才設(shè)置的新密碼123456登陸。
據(jù)說可以用直接修改user表文件的方法:
關(guān)閉MySQL,Windows下打開Mysql\data\mysql,有三個(gè)文件user.frm,user.MYD,user.MYI找個(gè)知道密碼的MySQL,替換相應(yīng)的這三個(gè)文件,如果user表結(jié)構(gòu)沒改過,一般也沒人去改,替換user.MYD就可以了。
也可以直接編輯user.MYD,找個(gè)十六進(jìn)制編輯器,UltraEdit就有這個(gè)功能。關(guān)閉MySQL,打開user.MYD。將用戶名root后面的八個(gè)字符改為565491d704013245,新密碼就是123456?;蛘邔⑺鼈儗?duì)應(yīng)的十六進(jìn)制數(shù)字,(左邊那里,一個(gè)字符對(duì)應(yīng)兩個(gè)數(shù)字),改為 00 02 02 02 02 02 02 02,這就是空密碼,在編輯器右邊看到的都是星號(hào)*,看起來很象小數(shù)點(diǎn)。重開MySQL,輸入root和你的新密碼。
今天有點(diǎn)事要進(jìn)mssql,因?yàn)槭呛芫靡郧把b的,所以忘記了sa的密碼,雖然用windows身份驗(yàn)證就可以進(jìn),但是如果用php連接mssql時(shí)就不行了,于是google了一下,找到了解決方法.
用windows身份驗(yàn)證機(jī)制進(jìn)去,然后
輸入下列命令,執(zhí)行:
exec sp_password null,'newpass','sa'
示例
A.無原密碼的情況下更改登錄密碼
下面的示例將登錄 Victoria 的密碼更改為 123
EXEC sp_password NULL,'123','sa'
B.更改密碼
下面的示例將登錄 Victoria 的密碼由 123 改為 456
EXEC sp_password '123','456'
另外我發(fā)現(xiàn)了一個(gè)問題,那就是windows和SQL Server身份驗(yàn)證機(jī)制有些不同
windows身份驗(yàn)證
服務(wù)器地址 登陸結(jié)果
127.0.0.1 ok
localhost wrong
. ok
SQL Server身份驗(yàn)證
服務(wù)器地址 登陸結(jié)果
127.0.0.1 ok
localhost wrong
. wrong
另外記錄一下忘記mysql 密碼的取回方法
如果 MySQL 正在運(yùn)行,
首先殺之: killall -TERM mysqld(如果是windows,直接調(diào)出進(jìn)程管理器,結(jié)束之)
以安全模式啟動(dòng) MySQ:
/usr/bin/safe_mysqld --skip-grant-tables &
(windows 下 mysql安裝所以盤/mysql/bin/safe_mysqld --skip-grant-tables )
就可以不需要密碼就進(jìn)入 MySQL 了.
然后就是
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
重新殺 MySQL,用正常方法啟動(dòng) MySQL.
相關(guān)文章
Mysql數(shù)據(jù)庫錯(cuò)誤代碼中文詳細(xì)說明
在mysql開發(fā)中出現(xiàn)錯(cuò)誤代碼各種各樣,下面我來給大家收集常用見的mysql使用過程中出錯(cuò)代碼的中文說明,希望些文章對(duì)各位朋友有所幫助了2013-08-08解決mysql與navicat建立連接出現(xiàn)1251錯(cuò)誤
在本篇文章里小編給大家整理了一篇關(guān)于mysql與navicat建立連接出現(xiàn)1251錯(cuò)誤怎么解決的技術(shù)文章,需要的朋友們參考下。2019-08-08mysql數(shù)據(jù)庫優(yōu)化總結(jié)(心得)
本篇文章是對(duì)mysql數(shù)據(jù)庫優(yōu)化進(jìn)行了詳細(xì)的總結(jié)與介紹,需要的朋友參考下2013-06-06mysql之動(dòng)態(tài)增添字段實(shí)現(xiàn)方式
這篇文章主要介紹了mysql之動(dòng)態(tài)增添字段實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05Mysql實(shí)時(shí)備份實(shí)現(xiàn)方法
這篇文章主要介紹了Mysql實(shí)現(xiàn)實(shí)時(shí)備份,需要的朋友可以參考下2016-02-02