在忘記 MySQL 密碼的情況下,可以通過 --skip-grant-tables 關閉服務器的認證,然后重置 root 的密碼,具體操作步驟如下。
步驟 1):關閉正在運行的 MySQL 服務。打開 cmd 進入 MySQL 的 bin 目錄。
步驟 2):輸入mysqld --console --skip-grant-tables --shared-memory
?命令。–skip-grant-tables 會讓 MySQL 服務器跳過驗證步驟,允許所有用戶以匿名的方式,無需做密碼驗證就可以直接登錄 MySQL 服務器,并且擁有所有的操作權限。
步驟 3):上一個 DOS 窗口不要關閉,打開一個新的 DOS 窗口,此時僅輸入 mysql 命令,不需要用戶名和密碼,即可連接到 MySQL。
步驟 4):輸入命令?update mysql.user set authentication_string=password('root') where user='root' and Host ='localhost';
?設置新密碼。
注意:MySQL 5.7 版本中的 user 表里已經去掉了 password 字段,改為了 authentication_string。
步驟 5):刷新權限(必須步驟),輸入flush privileges;
命令。
步驟 6):因為之前使用 --skip-grant-tables 啟動,所以需要重啟 MySQL 服務器去掉 --skip-grant-tables。輸入無誤后輸入quit;
命令退出 MySQL 服務。
步驟 7):重啟 MySQL 服務,使用用戶名 root 和剛才設置的新密碼 root 登錄就可以了。