相信不少程序員都遇到過這樣的問題,想登錄mysql時(shí)卻忘了root密碼,重裝一個(gè)吧好像又有點(diǎn)麻煩,萬一損壞了庫(kù)里的數(shù)據(jù)那可不好了,那么這種情況下怎么辦呢?
其實(shí)很簡(jiǎn)單,下面我們就一起看看,怎么在忘記root密碼的情況下,重置root密碼。
首先說一下解決這個(gè)問題的整體思路。整體的思路就是先跳過myql的認(rèn)證,在沒有密碼的情況下登錄數(shù)據(jù)庫(kù),然后重置root密碼,最后在恢復(fù)認(rèn)證,重啟數(shù)據(jù)庫(kù)就可以了。
下面以window為例,來看一下具體的操作步驟(以下方法在mysql 5.5.32 for win32上親測(cè)有效 )
- 以系統(tǒng)管理員身份運(yùn)行 cmd
- 在cmd窗口中執(zhí)行 net stop mysql 停止mysql
- 進(jìn)入mysql的bin目錄 執(zhí)行 mysqld --skip-grant-tables。執(zhí)行完之后窗口會(huì)卡住,不用緊張,先放在那,不用管他。
- 以系統(tǒng)管理員身份再次運(yùn)行 cmd,再打開一個(gè)cmd窗口。然后進(jìn)入到mysql的bin目錄下,執(zhí)行mysql,然后回車。這時(shí)你應(yīng)該可以順利的登錄mysql。
- 執(zhí)行下面的命令,用來重置root密碼
use mysql;
update user set password=password("123") where user="root";
exit;
- 執(zhí)行 tasklist | findstr "mysql" 可以看到mysql 的pid號(hào)
- 執(zhí)行 taskkill -PID 上一步mysql的pid -F
- 再次執(zhí)行 tasklist | findstr "mysql" 這時(shí)應(yīng)該沒有輸出了
- 執(zhí)行 net start mysql 重新啟動(dòng)mysql
- 執(zhí)行 mysql -uroot -p 然后輸入 123 應(yīng)該就可以順利的登錄mysql了