Mysql重置root密碼遇到的坑(忘記密碼)


1、原理

通過配置參數“skip_grant_tables”在mysql啟動時跳過grant_tables(授權表),從而通過命令來充值root帳號的密碼

2、方式

首先需要停止mysql服務

(1)在my.ini文件的[mysqld]塊下增加“skip_grant_tables”,然后重啟mysql服務,再以管理員權限打開cmd執行一些列命令重置密碼

步驟如下:

A、找到my.ini文件(右擊mysql服務找到可執行文件路徑,從所在的目錄或其它層級目錄搜索),在[mysqld]塊下增加“skip_grant_tables”

B、重啟mysql服務

C、以管理員權限打開cmd命令窗口,執行mysql -uroot –p直接回車不用輸入密碼

D、選擇數據庫:use mysql

E、更新root的密碼:update user set authentication_string=password('新密碼') where user='root' and Host='localhost'

F、刷新權限:flush privileges

G、退出:quit

H、重新登錄:mysql -uroot -p提示輸入密碼,這時輸入密碼才能登錄

I、回到 my.ini 配置文件移除“skip_grant_tables”,再重啟mysql

 

(2)直接通過命令指定參數“skip_grant_tables”啟動mysql,再執行命令修改密碼(與1的步驟除了指定跳過授權表參數的方式不同以外,其它都一樣)

A、在第一個cmd窗口執行 mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" --skip-grant-tables   ---注意路徑(以你的實際情況為准)

其它步驟同上

參考:

Windows下MySQL5.7 root 密碼重置

https://blog.csdn.net/hey_yf/article/details/80024706

Windows下Mysql5.7忘記root密碼的解決方法

https://www.cnblogs.com/yuwentims/p/9172463.html

3、遇到的坑

同過修改my.ini的方式配置“skip_grant_tables”再保存千萬要注意編碼的格式“ANSI”

(1)用Notepad++將修改了my.ini的配置

(2)重啟mysql服務,就啟動不了(超時),通過命令去執行接下來的操作會報“ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO)”的錯誤

(3)第一想到的是去百度,無果后從系統事件日志開始着手,發現了一些莫名其它的錯誤(其實部分是系統里其它程序的錯誤日志):

A、首先根據關鍵字看到的是“服務 MySQL57 意外停止。這發生了 7 次。”並沒卵用

B、然后就在這個錯誤的隔壁找其它錯誤 “應用程序-特定 權限設置並未向在應用程序容器 不可用 SID (不可用)中運行的地址 LocalHost (使用 LRPC) 中的用戶 NT AUTHORITY\LOCAL SERVICE SID (S-1-5-19)授予針對 CLSID ”像這種不明不白的錯誤頭腦一發熱並沒有多想,然后就是百度解決並沒有屁用

解決方式:

https://www.cnblogs.com/ibgo/p/3550674.html

http://www.ntxz.net/?p=580

解決了這個日志,但是對mysql並沒影響,現在才明白找錯了方向

(4)於是將所有的事件日志清除,重啟computer

(5)終於發現了一條這樣的錯誤 “mysql 啟動報錯--發現系統錯誤2,系統找不到指定的文件”

解決方式:

https://blog.csdn.net/Marvel__Dead/article/details/63262641?locationNum=4&fps=1

解決了報錯,mysql服務可以啟動了

接着執行重置的命令,終於報了一條有意義的錯“Found option without preceding group in config file:XXX; Fatal error in defaults handling.“,找到了原來是my.ini編碼惹得禍!

 

改成ANSI,一切就順利了…

參考:

MySQL報錯: Found option without preceding group in config file:XXX; Fatal error in defaults handling.

https://blog.csdn.net/life_android/article/details/56512606

4、注意

(1)確保服務里只有一個MySql

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM