您好,登錄后才能下訂單哦!
這篇文章主要介紹“MySQL8.0/8.x忘記密碼怎么更改root密碼”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“MySQL8.0/8.x忘記密碼怎么更改root密碼”文章能幫助大家解決問題。
1,authentication_string
這是Mysql8.0新做出的修改,在舊版本中使用的是password()函數。
2,在網上找到的“mysql忘記密碼”的解決方案中,大多會使用UPDATE user SET authentication_string="12345" WHERE user="root";
來直接將密碼改成12345,實際上這是錯誤的用法,authentication_string中存儲的是密文,如果直接改為"12345"這樣的明文會導致密碼錯誤登錄不上。
原因是服務器在驗證身份時會先將用戶輸入的明文轉為密文與數據庫中的密文作對比驗證是否匹配,而直接在本應放密文的地方放入明文顯然不會讓它們匹配成功。
3,在網上近似的搜索結果“mysql修改密碼”中,會使用alter user root@localhost identified by '12345'
來修改密碼,這句命令在“跳過授權表”時是使用不了的,唯有正常模式下可以使用
4,才有了這樣的解決方法,先將authentication_string變為空,畢竟空值的明文密文都是空值,用空密碼進入mysql正常模式后再使用alter將密碼改掉即可。
1,停止mysql服務
net stop mysql
2,輸入命令,進入“跳過授權表”模式
mysqld --console --skip-grant-tables --shared-memory
3,上一個cmd窗口先放一旁,另開個管理員cmd窗口,輸入mysql
進入mysql服務
4,輸入use mysql
進入mysql數據庫,再將authentication_string改為空
USE mysql; UPDATE user SET authentication_string="" WHERE user="root";
5,刷新權限,退出
FLUSH privileges; exit;
6,第一個cmd窗口中,使用ctrl+c
退出“跳過授權表”模式,啟動mysql服務
net start mysql
7,使用空密碼進行登錄,然后使用alter語句更新密碼,刷新權限,退出
mysql -uroot -p
alter user root@localhost identified by '12345' FLUSH privileges; exit
8,嘗試使用密碼登錄,成功。
關于“MySQL8.0/8.x忘記密碼怎么更改root密碼”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。