Windows 8.1下MySQL5.7 忘記root 密碼怎么處理
發表時間:2023-07-22 來源:明輝站整理相關軟件相關文章人氣:
[摘要]最近學習碰到了一件挺令人尷尬的事情,我把MySQL的密碼給忘記了,所以MySQL登錄不進去。在網上找的解決方案都不靠譜,下面小編給大家分享Windows 8.1下MySQL5.7 忘記root 密碼...
最近學習碰到了一件挺令人尷尬的事情,我把MySQL的密碼給忘記了,所以MySQL登錄不進去。在網上找的解決方案都不靠譜,下面小編給大家分享Windows 8.1下MySQL5.7 忘記root 密碼的解決方法,需要的朋友一起看看吧,希望能幫助到大家。
【背景】
最近學習碰到了一件挺令人尷尬的事情,我把MySQL的密碼給忘記了,所以MySQL登錄不進去。
網上的解決方案很多,嘗試了很多,依舊是被窗口的各種報錯虐。感謝大神的助力,MySQL忘記密碼解決方案才得以清晰,希望本篇博客的解決過程可以幫到讀者。
【問題解決過程】
一、跳過MySQL的權限審查進入MySQL
首先,找到MySQL的my.ini配置文件。
然后,打開文件,在mysqld下,添加一句代碼 skip-grant-tables ,以跳過權限的審核。
很重要的一步:win+R 輸入services.msc,找到mysql服務,重啟服務。
我懷疑我之前操作的時候,這一步沒有執行正確。(而且,這里我也有點疑問,我怎么有兩個MySQL服務,一個MySQL,一個MySQL57,MySQL屬性里沒有配置文件,而MySQL57是有的。)
二、在mysql.user表中重置密碼
首先,cmd進入DOS窗口,輸入MySQL,回車。就可以順利進入MySQL,而不需要密碼。(我之前連這一步都 實現不了,所以當成功進入MySQL的時候,別提我心里多高興了~~)
然后,我們再看看mysql.user表里都有啥。 select user,host,authentication_string from mysql.user

(Tips:一開始查詢 password,發現這個字段是不存在,后來上網查才知道MySQL5.7 把password的字段給換掉了,換成了authentication_string<中文含義 認證字符串>。)
=================================
此處,對host進行一下了解。
Host列指定了允許用戶登錄所使用的IP范圍。
比如user=root Host=192.168.21.1。這里的意思就是說root用戶只能通過192.168.21.1的客戶端去訪問。而%是個通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前綴為“192.168.21.”的客戶端都可以連接。如果Host=%,表示所有IP都有連接權限。所以要開啟遠程連接的時候,大部分人都直接把Host改成%的緣故,因為這樣超級方便。
=================================
很重要的一步:我們設置一下host和密碼。
Update mysql.user set host="%",authentication_string=password('root') where user='root';
三、刷新權限,將更改完且處于緩沖區內的數據更新。 flush privileges
還有一點小疑問:刷新之后,你直接輸入mysql,是沒有辦法跳過密碼審核進入MySQL的,但是配置文件明明還沒有把那句 skip-grant-tables 注釋掉啊?刷新會忽略掉剛才修改的配置文件么?
反正,后來還是把my.ini里那句 skip-grant-tables 注釋了。。

四、使用你的密碼登錄吧!
首先,輸入 mysql -u root -p ,然后輸入剛才設置的密碼,你就可以成功進入啦!
最后,請養成好習慣,記住你的寶貝密碼。:)

【小結】
本來想重新安裝MySQL的心都有了,但是還是堅持到問題成功解決,過程是有點痛苦,但是結局是美好的。
相關推薦:
Windows10安裝MySQL5.7及忘記root密碼修改方法
Window下Mysql忘記root密碼怎么重置的圖文詳細介紹
MySQL之——忘記Root密碼如何操作
以上就是Windows 8.1下MySQL5.7 忘記root 密碼如何解決的詳細內容,更多請關注php中文網其它相關文章!
學習教程快速掌握從入門到精通的SQL知識。