如何重設忘記的mysql密碼(mysql 5.1.42)
很久沒有摸mysql了,昨天因為有些需要,必須更改裡面的一個資料,想不到太久沒碰,竟然忘記mysql root的密碼了。
在網路上找了許多資料,不過大部分資料,都是年代久遠,照著步驟去做,居然沒一個可以試成功的,後來靠著一些不太正確的參考資料,加上一點自身的摸索,終於試成功,將忘記的密碼重設,不過這些步驟是否有些可以省去,我也不太確定,總之我是照著作,就可以成功重設。
這裡完整的說明重設密碼的步驟,不過這是針對windows系統,不是Linux系統,mysql的版本是5.1.42。
- 以系統管理員身份登入windows系統。
- 如果mysql是啟動的,先將它關閉。
- 打開命令視窗cmd。
如果在上一步驟,沒有關閉mysql,可以用net start 查看mysql是否還在啟動狀態。在啟動狀態的話,就用net stop mysql的指令停止。 - 切換到mysql的安裝路徑的bin資料夾內,如果是預設路徑,應該在c:\Program Files\MySQL\MySQL Server 5.1\bin之下。
- 執行mysqld --skip-grant-tables,這個指令用以啟動mysql,但會跳過權限檢查。
- 上個指令執行完後,命令視窗就停在mysql的運行狀態,不能再輸入指令了,所以要重新打開一個新的cmd命令視窗。
同樣切換到mysql的安裝路徑的bin資料夾內,執行mysql - 在mysql>的模式下,執行
update mysql.user set password=PASSWORD('1234') where user='root';
flush privileges;
quit;
上面的步驟就可將忘記的密碼重設。 - 回到dos命令模式,執行 mysqladmin -u root -p shutdown,輸入剛改過的密碼1234。關掉目前mysql無權限的模式。
- 再正常啟動mysql。
不過在恢復忘記的mysql密碼過程中,有時會出現一些錯誤,也不知為什麼,多試幾次就成功了。
參考資料: