2010年1月25日 星期一

如何重設忘記的mysql密碼(mysql 5.1.42)

很久沒有摸mysql了,昨天因為有些需要,必須更改裡面的一個資料,想不到太久沒碰,竟然忘記mysql root的密碼了。

在網路上找了許多資料,不過大部分資料,都是年代久遠,照著步驟去做,居然沒一個可以試成功的,後來靠著一些不太正確的參考資料,加上一點自身的摸索,終於試成功,將忘記的密碼重設,不過這些步驟是否有些可以省去,我也不太確定,總之我是照著作,就可以成功重設。

這裡完整的說明重設密碼的步驟,不過這是針對windows系統,不是Linux系統,mysql的版本是5.1.42。

  1. 以系統管理員身份登入windows系統。
  2. 如果mysql是啟動的,先將它關閉。
  3. 打開命令視窗cmd。
    如果在上一步驟,沒有關閉mysql,可以用net start 查看mysql是否還在啟動狀態。在啟動狀態的話,就用net stop mysql的指令停止。
  4. 切換到mysql的安裝路徑的bin資料夾內,如果是預設路徑,應該在c:\Program Files\MySQL\MySQL Server 5.1\bin之下。
  5. 執行mysqld --skip-grant-tables,這個指令用以啟動mysql,但會跳過權限檢查。
  6. 上個指令執行完後,命令視窗就停在mysql的運行狀態,不能再輸入指令了,所以要重新打開一個新的cmd命令視窗。
    同樣切換到mysql的安裝路徑的bin資料夾內,執行mysql
  7. 在mysql>的模式下,執行
    update mysql.user set password=PASSWORD('1234') where user='root';
    flush privileges;
    quit;
    上面的步驟就可將忘記的密碼重設。
  8. 回到dos命令模式,執行 mysqladmin -u root -p shutdown,輸入剛改過的密碼1234。關掉目前mysql無權限的模式。
  9. 再正常啟動mysql。

不過在恢復忘記的mysql密碼過程中,有時會出現一些錯誤,也不知為什麼,多試幾次就成功了。

20100123000.jpg

參考資料:

如果忘記mysql的root密碼(Windows)?

mysql忘記root密碼搞定方法(windows)