Win R 鍵啟動命令輸入窗口 ; 輸入 cmd 打開命令執行窗口 ;
##界面如下##
輸入命令:net stop mysqld #此操作會停止當前運行的MySQL服務
##界面如下##
【
注意:此時出現了【服務名無效】的錯誤。
原因:當Windows命令窗口執行【net start 服務名】此類命令時,啟動的是win下注冊的服務。
我們在執行MySQL數據庫默認安裝程序時,并沒有直接将mysql服務在系統中注冊。
即:當前默認路徑下無法找到mysql服務。
】
解決上面出現的【服務名無效】問題,步驟如下:
1)首先,定位到MySQL數據庫默認安裝的盤符路徑(具體根據自己安裝時的路徑進行查找);
##如圖例:我的默認安裝在C盤##
2)執行命令注冊服務: mysqld --install
【
注意:此時有可能會遇到兩種情況
a)服務注冊成功:出現 Service successfully install!
b)服務注冊失敗:出現 Install/Remove of the Service Denied!
】
注意:出現服務注冊失敗時,則表明你沒有使用管理員身份運行DOS窗口!!!
如何以管理員身份打開DOS命令窗口:
1)操作如圖一,直接以管理員方式運行DOS命令窗口;
2)打開盤符路徑:C:\Windows\System32,右上角輸入框搜索 cmd.exe
創建cmd.exe可執行文件的桌面快捷方式,更改默認【以管理員方式運行】,方便長期使用
執行MySQL服務啟動命令: net start mysql
注意:執行命令時,出現如下圖所示的錯誤時,請按照以下操作步驟進行
1)執行命令 mysqld --initialize 在當前路徑下重新生成 data 文件夾
2)執行MySQL服務啟動命令: net start mysql
至此:服務正常啟動,可進行下一步密碼重置操作。
二、重置初始化 root密碼
1、停止當前已經啟動的MySQL服務:net stop mysql
2、跳過權限檢查直接登錄服務: mysqld --skip-grant-tables
【
注意:實測 MySQL 8.0 以上版本使用 mysqld --skip-grant-tables 此命令無效
MySQL 8.0 下執行此命令後,再執行 mysql -u root 則會出現此類錯誤 :
ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost:3306' (10061)
】
或者 mysqld --console --skip-grant-tables --shared-memory 命令啟動數據庫
【
注意:執行完以上兩個命令後,不要再對此窗口進行任何操作;
以管理員的方式重新打開一個新的命令窗口,輸入命令
cd C:\Program Files\MySQL\MySQl Server 8.0\bin
重新進入MySQL的bin目錄
】
3、輸入命令無密碼直接登錄: mysql -u root -p
實測 MySQL 8.0 以上版本 mysqld –-skip-grant-tables此命令無效
實測 MySQL 8.0 使用 mysqld --console --skip-grant-tables --shared-memory 命令
4、訪問權限數據庫 use mysql
5、先将 root 原始密碼重置為空:update user set authentication_string='' where user='root';
至此,我們已經将權限密碼重置為 空的狀态。此時,我們退出MySQL數據庫,關閉MySQL服務,關閉所有打開的DOS命令窗口。用管理員權限重新打開一個新的命令窗口。
6、使用重置後的權限密碼登錄,重置為空,則登陸時不需要輸入密碼。
【注意,這一步的密碼為空是我們重置後的結果;而不是跳過權限檢查不需要輸入密碼
(mysqld --console --skip-grant-tables --shared-memory)】
7、修改我們想要的任意密碼:alter user 'root'@'localhost' identified by '新密碼';
8、切記!切記!完成以上步驟後刷新權限表: flush privileges;
以上,便是基于Windows系統下,MySQL8.0以上版本忘記root 初始化密碼修改全過程。親測完全可行。有更便捷高效的方法歡迎多多交流。
,