MySQL忘記密碼的破解方法)

來源:互聯網
上載者:User
如何找回mysql的root密碼!!!!!!!在LINUX下裝了MYSQL,剛裝完的時候把ROOT空密碼改了,當時也改了個好記的密碼,沒想到過了一天就忘記了。

因為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表檔案,就不需要重新改檔案屬主和許可權了

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.