最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Window中MySQL繞過密碼登錄的底層原理詳解

 更新時間:2025年02月14日 10:48:03   作者:碼農(nóng)研究僧  
在 MySQL 中,root 用戶的密碼存儲和認(rèn)證機(jī)制隨著版本的升級發(fā)生了變化,繞過密碼登錄主要依賴于 --skip-grant-tables 選項,本文將詳細(xì)分析 MySQL 繞過密碼的底層原理,并解釋為什么某些操作在 --skip-grant-tables 模式下無效,以及如何正確生效修改

1. 基本知識

在 MySQL 中,root 用戶的密碼存儲和認(rèn)證機(jī)制隨著版本的升級發(fā)生了變化
繞過密碼登錄主要依賴于 --skip-grant-tables 選項,但這一過程涉及 MySQL 的用戶認(rèn)證體系、權(quán)限管理以及數(shù)據(jù)庫安全策略

本文將詳細(xì)分析 MySQL 繞過密碼的底層原理,并解釋為什么某些操作在 --skip-grant-tables 模式下無效,以及如何正確生效修改

一、MySQL 用戶認(rèn)證機(jī)制

MySQL 的用戶認(rèn)證由以下幾個核心組件組成:

mysql.user 表:存儲用戶信息,如 user、host、authentication_string(MySQL 5.7+)
身份驗證插件(Authentication Plugin):MySQL 使用不同的插件來管理用戶登錄,例如:
mysql_native_password
caching_sha2_password(MySQL 8.0 默認(rèn))
sha256_password
權(quán)限系統(tǒng)(Privilege System):用于控制用戶在數(shù)據(jù)庫中的操作權(quán)限

當(dāng)用戶登錄 MySQL 時,服務(wù)器會:

  1. 檢查 mysql.user 表,確認(rèn)用戶名、主機(jī)匹配的賬號是否存在
  2. 調(diào)用身份驗證插件,使用 authentication_string 進(jìn)行密碼驗證
  3. 檢查權(quán)限系統(tǒng),確定用戶的訪問權(quán)限

二、 --skip-grant-tables 繞過權(quán)限驗證

--skip-grant-tables 選項允許 MySQL 啟動時跳過權(quán)限系統(tǒng),這意味著:
MySQL 不會檢查用戶權(quán)限,所有用戶都可以直接訪問數(shù)據(jù)庫,由于 權(quán)限系統(tǒng)未啟用,某些 SQL 語句(如 ALTER USER)可能無法執(zhí)行,仍然需要 手動刷新權(quán)限(FLUSH PRIVILEGES;) 才能使修改生效
問題點(diǎn):如果 FLUSH PRIVILEGES; 未執(zhí)行,MySQL 仍然會使用舊的用戶認(rèn)證規(guī)則,導(dǎo)致密碼修改后仍然無法登錄

三、password() 函數(shù)被移除

在 MySQL 8.0 及以上版本中,password() 函數(shù)已被移除,所以UPDATE mysql.user SET password = PASSWORD('root') WHERE user = 'root';會導(dǎo)致 語法錯誤

正確方式(適用于 MySQL 5.7 及以上):

UPDATE mysql.user SET authentication_string = '' WHERE user = 'root' AND host = 'localhost';
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

注意:
authentication_string 取代了 password 字段;ALTER USER 是修改密碼的推薦方法

四、以管理員權(quán)限運(yùn)行命令行

在 Windows 上,如果沒有以管理員身份運(yùn)行 cmd,則可能遇到權(quán)限問題,導(dǎo)致 ALTER USER 操作失敗

五、 --skip-grant-tables 退出后密碼失效的原因

如果在 --skip-grant-tables 模式下修改了密碼,然后退出 MySQL 后密碼仍然無效,可能的原因有:
沒有執(zhí)行 FLUSH PRIVILEGES;,導(dǎo)致修改未生效
MySQL 仍然使用緩存,未完全刷新認(rèn)證信息
未使用 ALTER USER,仍然在 mysql.user 直接修改 authentication_string,但沒有正確同步
MySQL 版本不同,認(rèn)證機(jī)制發(fā)生變化,導(dǎo)致密碼修改失敗

解決方案:

  1. 確保 FLUSH PRIVILEGES; 執(zhí)行成功。
  2. 直接使用 ALTER USER 而不是 UPDATE mysql.user。
  3. 重啟 MySQL 以清除緩存

2. 實(shí)戰(zhàn)Demo

以實(shí)戰(zhàn)Demo進(jìn)行演示

cmd窗口一定要管理員權(quán)限

cmd窗口一定要管理員權(quán)限

cmd窗口一定要管理員權(quán)限

開啟跳過密碼登錄:mysqld --console --skip-grant-tables --shared-memory (此窗口勿關(guān)閉)

后續(xù)在另外一個窗口cmd管理員,輸入如下:

直接登錄,跳過密碼:mysql -u root -p

鏈接數(shù)據(jù)庫:USE mysql;

如果是 MySQL 5.7 及以上(包括 MySQL 8.0),請執(zhí)行:

UPDATE mysql.user SET authentication_string = '' WHERE user = 'root' AND host = 'localhost';
FLUSH PRIVILEGES;

然后再執(zhí)行:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

注意:這里 authentication_string 字段在 MySQL 5.7 及以上版本中取代了 password 字段

別忘記刷新權(quán)限以及退出:

FLUSH PRIVILEGES;
quit;

總體截圖如下:

先關(guān)閉 MySQL 服務(wù)器:net stop mysql

然后重新啟動:net start mysql

重新登錄 MySQL:mysql -u root -p

到此這篇關(guān)于Window中MySQL繞過密碼登錄的底層原理詳解的文章就介紹到這了,更多相關(guān)MySQL繞過密碼登錄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql雙游標(biāo)嵌套循環(huán)方式

    mysql雙游標(biāo)嵌套循環(huán)方式

    這篇文章主要介紹了mysql雙游標(biāo)嵌套循環(huán)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • MySQL進(jìn)階之索引

    MySQL進(jìn)階之索引

    索引就是一種數(shù)據(jù)結(jié)構(gòu),這種結(jié)構(gòu)類似,鏈表,樹等等。但是比它們要復(fù)雜的多,索引(index)是幫助MySQL高效獲取數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)(有序),本文詳細(xì)介紹了MySQL索引,感興趣的同學(xué)可以參考閱讀
    2023-04-04
  • Mysql中報錯函數(shù)floor()函數(shù)和rand()函數(shù)的配合使用及原理詳解

    Mysql中報錯函數(shù)floor()函數(shù)和rand()函數(shù)的配合使用及原理詳解

    在項目中的SQL語句中遇到幾個數(shù)值處理函數(shù),看著有些懵,就小小的總結(jié)一下,這篇文章主要給大家介紹了關(guān)于Mysql中報錯函數(shù)floor()函數(shù)和rand()函數(shù)的配合使用及原理的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • MySQL存儲文本和圖片的方法

    MySQL存儲文本和圖片的方法

    今天小編就為大家分享一篇關(guān)于MySQL存儲文本和圖片的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • win10 安裝mysql 8.0.18-winx64的步驟詳解

    win10 安裝mysql 8.0.18-winx64的步驟詳解

    這篇文章主要介紹了win10 安裝mysql 8.0.18-winx64的步驟,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • mysql啟動提示mysql.host 不存在,啟動失敗的解決方法

    mysql啟動提示mysql.host 不存在,啟動失敗的解決方法

    我將s9當(dāng)眾原來的mysql4.0刪除后,重新裝了個mysql5.0,啟動過程中報一下錯誤,啟動失敗,查了一下群里面的老帖子也沒有個具體的明確說明
    2011-10-10
  • Mysql:The user specified as a definer (''xxx@''%'') does not exist的解決方案

    Mysql:The user specified as a definer (''xxx@''%'') does not

    今天小編就為大家分享一篇關(guān)于Mysql:The user specified as a definer ('xxx@'%') does not exist的解決方案,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 解決Mysql5.7.17在windows下安裝啟動時提示不成功問題

    解決Mysql5.7.17在windows下安裝啟動時提示不成功問題

    這篇文章主要介紹了解決Mysql5.7.17在windows下安裝啟動時提示不成功問題,需要的朋友可以參考下
    2017-03-03
  • MySQL入門實(shí)戰(zhàn):視圖+用戶權(quán)限管理使用方法(圖文+代碼)

    MySQL入門實(shí)戰(zhàn):視圖+用戶權(quán)限管理使用方法(圖文+代碼)

    本文詳細(xì)介紹了MySQL的視圖和用戶權(quán)限管理,視圖是虛擬表,不存儲數(shù)據(jù),數(shù)據(jù)來源于基表,視圖和基表數(shù)據(jù)雙向聯(lián)動,用戶管理與權(quán)限控制方面,最小權(quán)限原則、登錄限制、禁止root遠(yuǎn)程登錄和按業(yè)務(wù)分用戶是生產(chǎn)環(huán)境的最佳實(shí)踐,正確總結(jié)了視圖和用戶管理的核心知識點(diǎn)
    2026-04-04
  • MySQL在Centos7環(huán)境安裝的完整步驟記錄

    MySQL在Centos7環(huán)境安裝的完整步驟記錄

    在CentOS7環(huán)境下安裝MySQL是一項常見的任務(wù),尤其對于那些沒有網(wǎng)絡(luò)連接或者需要在隔離環(huán)境中的開發(fā)者來說,離線安裝MySQL顯得尤為重要,這篇文章主要介紹了MySQL在Centos7環(huán)境安裝的完整步驟,需要的朋友可以參考下
    2024-10-10

最新評論

泸水县| 滕州市| 晋城| 收藏| 金溪县| 建瓯市| 芒康县| 司法| 班戈县| 临武县| 大埔区| 邳州市| 平邑县| 阳东县| 垣曲县| 香河县| 沛县| 静宁县| 和硕县| 广西| 文成县| 垦利县| 丰台区| 璧山县| 香格里拉县| 和硕县| 英德市| 黄大仙区| 桃江县| 岐山县| 布拖县| 云浮市| 横山县| 中方县| 泗洪县| 屯昌县| 通山县| 德庆县| 五常市| 永宁县| 仙桃市|