好久沒有使用本地mysql資料庫,可能哪天突然需要用到的時候,密碼卻忘記了,重新解除安裝安裝又麻煩,那麼怎麼辦呢?可以通過修改密碼解決。
作業系統:win10;
mysql資料庫版本:mysql-8.0.16
mysql安裝目錄:D:\Program Files
下面講解下步驟:
1.打開第1個dos視窗
依次輸入以下指令
cd D:\Program Files\mysql-8.0.16-winx64\bin
net stop Mysql8
mysqld --console --skip-grant-tables --shared-memory
執行效果:
指令解釋:
指令1:打開本地電腦mysql安裝目錄的bin子目錄(根據自己安裝路徑調整),因為裡面包含有mysqld.exe可執行檔案,進入到此目錄才可以使後面的mysqld指令生效。
指令2:停止mysql服務,我之前将服務名稱設定為了Mysql8,是以這裡是“net stop Mysql8”,如果本地的mysql服務名稱叫mysql,需要改成“net stop mysql”。
指令3:表示啟動MySQL服務的時候跳過權限表認證。由于mysqld –skip-grant-tables在mysql8.0中已失效,是以現使用指令:mysqld --console --skip-grant-tables --shared-memory。
注意:要使用管理者模式打開,否則會導緻 “net stop Mysql8” 這個指令無法運作,提示拒絕通路,原因是目前使用者的操作權限太低。
怎麼使用管理者模式打開?
以win10為例,在搜尋欄輸入cmd,滑鼠右擊“指令提示符”選擇管理者身份運作。
2.打開第2個dos視窗
依次執行以下指令
cd D:\Program Files\mysql-8.0.16-winx64\bin
mysql -u root -p
//不輸入密碼直接回車
use mysql
update user set authentication_string='' where user='root';
quit
上面幾個指令的整體意思是:登陸mysql,切換到mysql資料庫,更改user表,将root使用者的這條記錄認證字元串設定為空。
執行效果:
3.打開第3個dos視窗
依次執行以下指令
net start Mysql8
cd D:\Program Files\mysql-8.0.16-winx64\bin
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
上面幾個指令的整體意思是:重新開機mysql服務,登陸mysql,修改使用者root的密碼為:123456。
注意事項:
1、同樣需要使用管理者模式打開dos視窗。
2、在mysql低版本修改密碼可以使用指令:set password for [email protected] = password(‘123456’);
但是mysql 8.0 版本修改密碼,隻能使用指令:alter user ‘root’@‘localhost’ identified by ‘123456’;
3、如果執行“net start Mysql8 ”指令啟動mysql服務不成功
- 請檢查mysql安裝目錄下data子目錄名稱是否正确,正确應該如下
- 若data名稱正确,删除安裝目錄下的data檔案夾,打開dos視窗,執行以下指令:
cd D:\Program Files\mysql-8.0.16-winx64\bin
mysqld --initialize
會發現,之前删除的data檔案夾又重新生成了。重新運作 “net start mysql” 即可啟動服務成功。
執行效果:
至此,mysql 8 本地密碼修改成功了!