常講二手資料害死人,可要是真不看,連上哪裏找問題答案都不清楚,可能要撞的牆非撞不可吧!MySQL對咱們而言是個黑盒,我以爲不涉及到優化的問題,暫時沒必要過多探究它的運行機制,更況且還有那麼多可視化工具.網上常見的重置root密碼博客,不區分MySQL的版本,可實際上MySQL5和MySQL8仍是有一些不一樣的,可是裝了MySQL8還沒多長時間,文件安裝位置和數據存儲位置剛剛搞清楚,很難明白版本的區別會對實際操做形成哪些影響.html
環境:windows7系統版本:MySQL8.0.16mysql
安裝方式:使用MySQL Installer安裝 sql
1.root帳戶的密碼被你忘了怎麼辦?手賤了一下,動了系統用戶表又怎麼辦?windows
2.見識一下由密碼重置操做連帶的一系列知識點?安全
官方文檔:密碼重置的解決方案(寫得很好,除了不能徹底照搬之外,沒毛病)服務器
1.打開cmd命令行,切換至mysql安裝位置,輸入net stop mysql80,關閉mysql服務;工具
2.建立一個txt文件,好比命名爲mysql-init.txt,寫入ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';(可是該文件不宜放入過深的文件路徑,若是過深,命令行在讀取該文件時,可能會報參數過多的錯誤,放在C盤或D盤根目錄就能夠)優化
3.輸入:mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --init-file=D:\mysql-init.txt --console.net
mysql-init文件路徑過深報錯:命令行
5.正常登錄, mysql -u root -p,密碼即爲新密碼,驗證成功,爲了安全,刪除mysql-init.txt文件
1.net stop mysql80;關閉mysql進程服務;
2.依舊使用cmd在mysql程序安裝位置的bin文件夾下,執行命令,輸入 mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --console --skip-grant-tables --shared-memory(沒有--shared-memory沒法跳過驗證,mysql5好像不須要添)
1.多數博客給出的方案沒法直接使用的緣由:使用使用MySQL Installer安裝後,mysql8.0安裝時數據和程序路徑是分開設置的 程序安裝路徑通常在:C:\Program Files\MySQL\MySQL Server 8.0 數據路徑通常在:C:\ProgramData\MySQL\MySQL Server 8.0,數據路徑這裏是有my.ini配置文件用於配置mysql,一些命令須要讀取該文件.mysql5沒試過,多是在一塊兒的
程序安裝路徑目錄:
3.數據路徑下的data文件夾和.ini配置文件.data中的.err文件會記錄一些錯誤,是否算是錯誤日誌還沒有驗證.my.ini配置文件未作過多研究,具體內容就不說了,密碼重置須要讀取該文件.初始化會重置Data文件夾和ini配置文件.(初始化命令的執行位置應該就是數據路徑,不想做大死,因此也沒試)初始化與mysqld --initialize-insecure --console,mysqld --initializ --console等命令有相關,一個會爲root帳號生成隨機密碼,一個會將密碼置爲空,日誌文檔會記錄密碼信息;
4.mysqld --initialize-insecure --console,mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --init-file=D:\mysql-init.txt --console等命令中的console,我以爲最好加上這一參數,能夠查看打印結果,能知道命令的執行成功與否;
5.net stop mysql80:當咱們在mysql客戶端輸入exit,只是斷開了客戶端和服務端的鏈接,後臺服務進程(即mysqld)依舊在運行,net stop mysql80是關閉後臺進程.爲何是mysql80,mysql8安裝時服務進程默認名爲mysql80,應該能夠改,或者mysqld --initializ --console初始化也行.