【真實有效】Window10系統下mysql-8.0.13-winx64的修改密碼

【真實有效】Window10系統下mysql-8.0.13-winx64的修改密碼

  忘記密碼不可怕,不會修改才尷尬

  在一次小組開發項目中,我們採用的是Git控制版本管理,每次我pull下來的代碼,因爲我比較懶,所以就是直接覆蓋了,但是在數據庫連接的配置文件中,每臺機器的數據庫密碼不一定一樣,但是你從Git摘下來的東西,就是別人的數據庫密碼。

  爲了統一,自我犧牲,將我的密碼修改爲他們的一致的密碼,結果...............你懂的,

=================================================================================

  想必大家都是按照網上的一些方法修改的,當然有成功的,但是忽略了一點,mysql的版本不一樣,修改密碼的指令就可能存在小的差異啊!

我就是這樣改完直接崩了,登錄都登不進去,心態直接爆炸!!!

   此處省略一萬字.......

  直奔主題

1. 忘記密碼篇(注意:這是成功教學,真實有效)

       (1)首先,請關閉MySql服務

               我覺得你肯定有能力找到這個服務!!!,百度大法好

 (2)

        分析一下,我們沒密碼,怎麼登陸修改密碼啊?

       mysql專門爲咱們這種大馬虎搞了一個機制,可以直接跳過驗證,就可以登錄。網上也有,但是在我這個8.0版本以上的mysql失效

        你們搜到的是不是 =========在my.ini文件當中的mysqlId下添加skip-grant-table=========

老版本是有用的,但是最新的數據庫版本這個命令已失效,會發現命令窗口仍然跳出下一行待輸入指令。

        不講廢話,就是上代碼

mysqld --console --skip-grant-tables --shared-memory

          打開cmd,一直cd進入你的mysql的安裝目錄的bin目錄下,比如我的:

  D:\program_tools\mysql\mysql-8.0.13-winx64\bin

       請看我操作

 

   繼續....................

   複製粘貼我剛纔說的核心代碼,直接執行。

  結果看不懂沒關係,只要出現瞭如下圖的字眼,你就成功了.............................一小半。

 

  continue

    此處命令窗口別動!!!

    另外開一個cmd,直接輸入mysql ,走你:

 

輸入指令 

use mysql;                                                 //注意有分號哦

 不一樣的地方來了......

 

 

===================不想看錯誤部分可以直接跳過==================

請再次注意我們的mysql是8.0及以上的版本,使用傳統的指令,如下圖(我給的是圖片,防止你們也執行,但是可以自己試一下看錯誤是不是一樣的)。

 

肯定會報錯,報錯如下:

 瞧見沒,就是上面的錯,爲什麼會這樣,我查了一下。

         mysql是8.0及以上的版本已經取消了password關鍵字,也就是說現在對於密碼的關鍵字不是password,所以修改密碼它識別不了這個password,自然就拋出語法錯誤

 所以呢?上新傢伙:

mysql_native_password                            //注意這不是命令,這是mysql8.0的一種密碼加密規則,具體我也不太懂,

                                                                  //我後面懂了,我再回來補充。

=====================錯誤部分結束========================

 

回到正軌.......

     輸入如下代碼:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密碼'; 

     令人頭痛弄得是,有時會出現這種情況:

     不過沒關係,一旦出現了這種情況,請執行如下語句:

 

flush privileges;                                             //刷新一下權限表

     這個語句是啥意思啊!

================================flush privileges; ==============================
 該命令本質上的作用:是將當前user和privilige表中的用戶信息/權限設置從mysql庫(MySQL數據庫的內置庫)中提取到內存裏。MySQL用戶數據和權限有修改後,希望在”不重啓MySQL服務”的情況下直接生效,那麼就需要執行這個命令。

    通常是在修改ROOT帳號的設置後,怕重啓後無法再登錄進來,那麼直接flush之後就可以看權限設置是否生效。而不必冒太大風險。

再次粘貼剛纔的代碼(如若沒出現這種錯誤,請忽略本條)

執行及如果如下:

再刷新一次,即執行flush privileges; 

到這裏密碼就修改完成了,後面就是測試一下登陸結果

 

2. 測試登陸

        (1)關掉剛纔的所有cmd窗口(一定要關,不然服務起不來);

        (2)幹啥都要記住,打開MySQL服務

        (3)最後就又是一頓操作,通過cmd進入mysql的安裝目錄的bin文件夾下,輸入如下指令:

mysql -uroot -p

具體操作按上圖一步一步來

(1)同樣進入mysql的安裝目錄的bin文件夾下;

(2)輸入mysql -uroot -p

(3)輸入剛剛修改的新密碼;

登錄結果出現:    mysql >

表示登陸成功!!!

 

 

最後我表示,學會修改MySQL密碼的過程很痛苦,但是一步一步走起來,當你成功後,你會發現自己真的可以。

可能文章中有些地方有些錯誤,希望大家可以多多交流,指出不足之處。謝謝各位了!

老樣子,送各位一句話:

過程很痛苦。收穫很幸福。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章