一鍵清空(重置)本地MySQL8.0密碼腳本
之前我開發(fā)了一個(gè)爆破MySQL簡單密碼的Python腳本,但是對于MySQL就安裝在自己機(jī)器上這種情況根本沒有必要,只要我們擁有關(guān)閉和啟動MySQL服務(wù)進(jìn)程的權(quán)限,我們就可以直接重設(shè)密碼。
具體原理:
- 結(jié)束MySQL服務(wù)進(jìn)程
- 以跳過權(quán)限表檢查的方式啟動MySQL服務(wù)進(jìn)程
- 修改存儲用戶密碼的表,指定root本地用戶的密碼為空
- 結(jié)束MySQL服務(wù)進(jìn)程
- 以正常方式啟動MySQL服務(wù)進(jìn)程
注意:命令行方式操作服務(wù)進(jìn)程需要管理員權(quán)限
最終編寫如下cmd腳本(保存文件名后綴為.cmd):
TASKKILL /F /IM mysqld.exe /T start D:\software\mysql-8.0.25-winx64\bin\mysqld --console --skip-grant-tables --shared-memory echo UPDATE mysql.user SET authentication_string='' WHERE user='root' and host='localhost';>t.sql TIMEOUT /T 2 D:\software\mysql-8.0.25-winx64\bin\mysql<t.sql TASKKILL /F /IM mysqld.exe /T net start mysql8.0
以管理員身份運(yùn)行以上腳本,即可清空本地MySQL的密碼:

之所以寫D:\software\mysql-8.0.25-winx64\bin\這種全路徑形式是因?yàn)槲覜]有將MySQL的bin目錄加入path環(huán)境變量,若你的電腦已經(jīng)將該目錄加入環(huán)境則可以去掉,否則修改為你的MySQL安裝位置的bin目錄。
net start mysql8.0啟動了名稱為mysql8.0的服務(wù)。這是我在前面安裝MySQL8.0時(shí)這么命名服務(wù)名稱的,詳見:不卸載原有mysql直接安裝mysql8.0
需要更換為你的MySQL注冊的服務(wù)名稱。若沒有注冊服務(wù),則需要按照你平時(shí)啟動MySQL服務(wù)的方法啟動。
執(zhí)行完以上腳本后就可以免密登錄MySQL了,登錄后就可以執(zhí)行以下命令,修改MySQL為任意密碼(這里修改密碼為123456):
ALTER user 'root'@'localhost' IDENTIFIED BY '123456';
然后重啟MySQL服務(wù)使密碼生效:
net start mysql8.0 net stop mysql8.0
其實(shí)我們也可以腳本中自行進(jìn)行管理員權(quán)限提權(quán),這樣就可以直接雙擊腳本運(yùn)行。
只需在腳本開頭加上如下這行命令:
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit對于MySQL 5.x版本,重置腳本更加簡單,可以直接在腳本中設(shè)置MySQL密碼。
參考腳本內(nèi)容為:
TASKKILL /F /IM mysqld.exe /T start mysqld --skip-grant-tables echo ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';>t.sql TIMEOUT /T 2 mysql<t.sql TASKKILL /F /IM mysqld.exe /T net start MySQL
根據(jù)實(shí)際情況修改即可。
到此這篇關(guān)于一鍵清空(重置)本地MySQL8.0密碼腳本的文章就介紹到這了,更多相關(guān)清空MySQL8.0密碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL字符串日期格式轉(zhuǎn)換的幾種常用方法例子解析
這篇文章主要給大家介紹了MySQL字符串日期格式轉(zhuǎn)換的幾種常用方法例子解析,MySQL提供了多種函數(shù)來處理字符串日期格式的轉(zhuǎn)換,這些函數(shù)可以幫助用戶在不同的日期格式之間進(jìn)行轉(zhuǎn)換,以及進(jìn)行日期的加減和時(shí)間戳的轉(zhuǎn)換操作,需要的朋友可以參考下2024-11-11
MySQL統(tǒng)計(jì)函數(shù)GROUP_CONCAT使用陷阱分析
這篇文章主要介紹了MySQL統(tǒng)計(jì)函數(shù)GROUP_CONCAT使用中的陷阱,結(jié)合實(shí)例形式分析了GROUP_CONCAT用于統(tǒng)計(jì)時(shí)的長度限制問題與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-06-06
MySQL中無GROUP BY情況下直接使用HAVING語句的問題探究
這篇文章主要介紹了MySQL中無GROUP BY情況下直接使用HAVING語句的問題探究,同時(shí)探究了該情況下MAX與MIN功能的使用情況,需要的朋友可以參考下2015-05-05
在MySQL?8.0版本中開啟遠(yuǎn)程登錄詳細(xì)的操作步驟
有時(shí)數(shù)據(jù)庫所在機(jī)器與項(xiàng)目運(yùn)行的機(jī)器不是同一個(gè),那么就涉及到遠(yuǎn)程鏈接數(shù)據(jù)庫了,下面這篇文章主要給大家介紹了關(guān)于在MySQL?8.0版本中開啟遠(yuǎn)程登錄詳細(xì)的操作步驟,需要的朋友可以參考下2024-04-04
mysql 實(shí)現(xiàn)互換表中兩列數(shù)據(jù)方法簡單實(shí)例
這篇文章主要介紹了mysql 實(shí)現(xiàn)互換表中兩列數(shù)據(jù)方法簡單實(shí)例的相關(guān)資料,需要的朋友可以參考下2016-10-10
MySQL新增字段后Java實(shí)體未更新的潛在問題與解決方案
在Java+MySQL的開發(fā)中,我們通常使用ORM框架來映射數(shù)據(jù)庫表與 Java 對象,但有時(shí)候,數(shù)據(jù)庫表結(jié)構(gòu)變更(如新增字段)后,開發(fā)人員可能忘記同步更新Java實(shí)體類,會導(dǎo)致什么問題?接下小編給大家介紹了MySQL新增字段后Java實(shí)體未更新的潛在問題與解決方案2025-03-03
mysql實(shí)現(xiàn)從導(dǎo)出數(shù)據(jù)的sql文件中只導(dǎo)入指定的一個(gè)表
這篇文章主要介紹了mysql實(shí)現(xiàn)從導(dǎo)出數(shù)據(jù)的sql文件中只導(dǎo)入指定的一個(gè)表,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11

