背景:每次mysql忘記密碼後都要百度一波跟着解決,有時候又搜不到一個好的教程,這次又遇到了忘記密碼的情況,是以就自己記錄一下吧,友善以後查閱。
1.停止服務(net stop mysql),然後輸入指令mysqld --skip-grant-tables(跳過使用者驗證,就是可以直接不需要密碼登入mysql)
2.然後重新開啟一個cmd視窗(上面的這個cmd視窗不能關閉),輸入mysql 就直接進入mysql了 無需密碼
此時開始修改密碼 先選擇mysql這個庫
嘗試用了 update user set password = password ( "123456 " ) where user = "root"; 發現不行 。
然後檢視一下表結構 desc user; 發現表裡面都沒有password這個字段
但是有authentication_string字段,是以直接更新密碼: update user set authentication_string=password('123456') where user="root" and host='localhost';
3.重新整理緩存,使修改立即生效: flush privileges;
4.然後啟動服務 登入,登入進去後不管輸入啥指令都提示 Unknown error 1820
解決方法:
alter
user
user
() identified
by
"123456"; (方法來源:
https://www.jb51.net/article/172183.htm
)
5.輸入一個查詢資料庫的指令 show databases; 正常執行,成功