MySQL8下忘記密碼后重置密碼的辦法(MySQL老方法不靈了)
實(shí)測(cè)mysqld –skip-grant-tables這樣的命令行,在mysql8中無(wú)法成功啟動(dòng),而且測(cè)試了該參數(shù)放在ini文件里面也同樣無(wú)法啟動(dòng)
MySQL的密碼是存放在user表里面的,修改密碼其實(shí)就是修改表中記錄。
重置的思路是是想辦法不用密碼進(jìn)入系統(tǒng),然后用數(shù)據(jù)庫(kù)命令修改表user中的密碼記錄。
查了下,MySQL5系統(tǒng)在網(wǎng)上建議的方法是以–skip-grant-tables參數(shù)啟動(dòng)mysql服務(wù),該參數(shù)指示在啟動(dòng)時(shí)不加載授權(quán)表,因此啟動(dòng)成功后root用戶可以空密碼登陸
mysqld –skip-grant-tables
登陸之后可以用
UPDATE user SET authentication_string=” WHERE user='root';
這類命令設(shè)置密碼或者將密碼置空。
但是,實(shí)測(cè)mysqld –skip-grant-tables這樣的命令行,在mysql8中無(wú)法成功啟動(dòng),而且測(cè)試了該參數(shù)放在ini文件里面也同樣無(wú)法啟動(dòng)

MySQL8系統(tǒng)密碼重置的兩個(gè)思路
兩條思路,或者用–init-file參數(shù)在服務(wù)啟動(dòng)時(shí)加載并運(yùn)行修改密碼的命令文件,該命令一旦執(zhí)行,服務(wù)啟動(dòng)后密碼即已經(jīng)清除或者重置,啟動(dòng)服務(wù)后即可以空密碼或指定密碼登入。
或者繼續(xù)研究–skip-grant-tables命令行參數(shù)下服務(wù)不能啟動(dòng)的原因,解決問(wèn)題,然后啟動(dòng)服務(wù)后以空密碼登入,手工輸入命令,執(zhí)行清除或者重置mysql.user表中的密碼記錄字段。
推薦使用前者。
具體操作流程如下:
方法一:利用–init-file參數(shù)解決
該參數(shù)指定服務(wù)啟動(dòng)時(shí)先執(zhí)行一個(gè)包含sql命令文件,因此,只需要將重置密碼的命令寫(xiě)在該文件中,以此參數(shù)指定啟動(dòng)時(shí)執(zhí)行該命令,啟動(dòng)完成即可重置系統(tǒng)密碼了。
第一步,關(guān)掉系統(tǒng)服務(wù)
net stop mysql
第二步,創(chuàng)建一個(gè)文本文件,內(nèi)含一條密碼修改命令
ALTER USER ‘root'@'localhost' IDENTIFIED BY ”;
第三步:命令行方式啟動(dòng)服務(wù)器,指定啟動(dòng)時(shí)執(zhí)行上述的密碼修改命令文件
mysqld –init-file=d:mysqlc.txt –console
具體操作截圖

方法二,想辦法讓–skip-grant-tables參數(shù)用起來(lái)
同方法一,先關(guān)掉系統(tǒng)服務(wù)
實(shí)測(cè),在mysql8系統(tǒng)下,用mysqld –console –skip-grant-tables –shared-memory可以無(wú)密碼啟動(dòng)服務(wù)

服務(wù)啟動(dòng)后,以空密碼登入系統(tǒng)
mysql.exe -u root
然后執(zhí)行sql命令將root用戶密碼設(shè)置為空
UPDATE mysql.user SET authentication_string=” WHERE user='root' and host='localhost';
具體操作截圖

MySQL8的一些特性導(dǎo)致老方法重置不大管用了,建議使用–init-file參數(shù)解決,實(shí)測(cè)安全可靠。
數(shù)據(jù)庫(kù)管理密碼丟失是很頭疼的事情,如果不能順利找回,麻煩很大。網(wǎng)上搜索的解決方法多數(shù)已經(jīng)落伍,建議收藏關(guān)注本文,以備不時(shí)之需。
相關(guān)文章
MYSQL 沒(méi)有完全卸載將導(dǎo)致其安裝不成功
安裝MYSQL不成功,一般是因?yàn)榉?wù)器可能安裝過(guò)MYSQL而沒(méi)有完全卸載。2009-06-06
mysql獲取字符串長(zhǎng)度函數(shù)(CHAR_LENGTH)
本文介紹一下關(guān)于mysql獲取字符串長(zhǎng)度的方法,希望此教程對(duì)各位同學(xué)會(huì)有所幫助哦。2013-11-11
MySQL數(shù)據(jù)表基本操作實(shí)例詳解
這篇文章主要介紹了MySQL數(shù)據(jù)表基本操作,結(jié)合實(shí)例形式較為詳細(xì)的分析了MySQL針對(duì)數(shù)據(jù)表的基本創(chuàng)建、表結(jié)構(gòu)查看、修改、刪除等相關(guān)操作技巧,需要的朋友可以參考下2018-06-06
MySQL插入數(shù)據(jù)insert?ignore語(yǔ)法重復(fù)數(shù)據(jù)自動(dòng)忽略
這篇文章主要給大家介紹了關(guān)于MySQL插入數(shù)據(jù)insert?ignore語(yǔ)法重復(fù)數(shù)據(jù)自動(dòng)忽略的相關(guān)資料,最近工作中使用到了insert ignore into語(yǔ)法,感覺(jué)這個(gè)語(yǔ)法還是挺有用的,就記錄下來(lái)做個(gè)總結(jié),需要的朋友可以參考下2023-08-08
mysql drop database刪除數(shù)據(jù)庫(kù)命令實(shí)例講解
這篇文章主要介紹了mysql drop database刪除數(shù)據(jù)庫(kù)命令實(shí)例講解的相關(guān)資料,需要的朋友可以參考下2016-09-09
MySQL分庫(kù)分表后路由策略設(shè)計(jì)詳情
這篇文章主要介紹了MySQL分庫(kù)分表后路由策略設(shè)計(jì)詳情,分庫(kù)分表后設(shè)計(jì)到的第一個(gè)問(wèn)題就是,如何選擇路由key,應(yīng)該如何對(duì)key進(jìn)行路由2022-08-08
總結(jié)MySQL修改最大連接數(shù)的兩個(gè)方式
最大連接數(shù)是可以通過(guò)mysql進(jìn)行修改的,mysql數(shù)據(jù)庫(kù)修改最大連接數(shù)常用有兩種方法,今天我們分析一下這兩種方法之間的特點(diǎn)和區(qū)別,以便我們能更好的去維護(hù)mysql。下面我們來(lái)看一下mysql修改最大連接數(shù)的方法,希望文章能夠幫助到各位朋友。2016-08-08
mysql創(chuàng)建的外鍵無(wú)法保存的原因以及處理辦法
這篇文章主要介紹了mysql創(chuàng)建的外鍵無(wú)法保存的原因以及處理辦法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09

