Linux防健忘日誌No.73-Ubuntu 12.04 忘記MySQL密碼終極補救辦法

今天稍微搞了一下Bugzilla,然後需要存取SQL,但我MySQL密碼居然忘了(明明就有抄,但就是不一樣了,超怪)

 

原本想說是很簡單的解法,但沒有想像中的順利,還是弄了1小時才重設密碼

 

用了跳過授權表的方法都沒用,永遠告訴你

ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)

 

一整個肚爛火,最後用預設密碼法終於進入mysql修改密碼,

方法如下

 

1.若有停用mysql或者用mysqld_safe –user=mysql –skip-grant-tables –skip-networking &的,麻煩回復原狀(重開機或者其他辦法都行)

但不確定有這一行會不會影響以下操作…,本文是恢復原狀做下面的動作

 

2.sudo cat /etc/mysql/debian.cnf

找到[client]裏頭的password後面接的那一串密碼,記下來

 

3.接著打mysql -udebian-sys-maint -p

然後輸入剛剛cat檔案裏面的密碼,就可以成功進入mysql命令列

 

倒楣的是…就在

UPDATE user SET Password=PASSWORD(‘輸入 root 新密碼’) where USER=’root’;

 

這一段,告訴我沒選到資料庫…ERROR 1046 (3D000): No database selected

不會吧…

 

那就讓現有的資料庫列出,

打入mysql> showdatabases;

 

就會看到主機上的資料庫,

在打mysql> use mysql;

 

選擇系統資料庫

選擇完畢之後,再改看看

UPDATE user SET Password=PASSWORD(‘輸入 root 新密碼’) where USER=’root’;

 

應該就ok了,接著flush privileges;

 

完畢之後打quit離開

 

回到命令列模式,就可以透過mysql -u root -p,加上剛剛改完的密碼正常login MySQL了 🙂

 

真是…,沒忘過MYSQL密碼,一忘還真是麻煩..

 

thx for:

http://mustgeorge.blogspot.tw/2011/11/mysql-error-1045-28000-using-password.html

http://sraji.wordpress.com/2011/08/10/how-to-reset-mysql-root-password/

Leave a comment

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料