Ubuntu 22.04 + MySQL 8 無密碼登錄問題與 root 密碼重置指南

背景場景

在 Ubuntu 系統中使用 aptdeb 包方式安裝 MySQL 8 時:

  • 初次安裝后會自動初始化數據庫;
  • 沒有提示 root 初始密碼
  • 導致 mysql -u root -p 無法登錄。

為了解決該問題,通常我們使用 --skip-grant-tables 方式跳過權限認證進入 MySQL,然后手動修改 root 密碼,但這可能導致 權限表異常殘留,重啟后仍可免密登錄


解決方案總覽

我們將通過三步徹底修復這個問題:

  1. 啟動 MySQL,跳過權限校驗,進入無密碼模式
  2. 清空 root 用戶,重新創建 root 賬戶并配置密碼
  3. 恢復配置文件,重啟驗證密碼登錄生效

步驟一:跳過密碼驗證啟動 MySQL

1. 停止 MySQL 服務

sudo systemctl stop mysql

2. 啟動 MySQL 并跳過授權驗

sudo mysqld_safe --skip-grant-tables --skip-networking &

解釋:

  • --skip-grant-tables: 跳過用戶認證;
  • --skip-networking: 禁止遠程連接(增強安全);
  • &: 后臺運行。

3. 無密碼登錄 MySQL

mysql -u root

進入后會看到 mysql> 提示符。


步驟二:清除舊 root 用戶并重新配置密碼

1. 刷新權限(激活權限表)

FLUSH PRIVILEGES;

2. 刪除所有舊 root 用戶

DELETE FROM mysql.user WHERE User = 'root';

3. 創建新的 root 用戶(本地登錄)

CREATE USER 'root'@'localhost' IDENTIFIED BY 'YourStrongPassword';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;

4. (可選)允許遠程登錄

CREATE USER 'root'@'%' IDENTIFIED BY 'YourStrongPassword';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

5. 強制刷新權限

FLUSH PRIVILEGES;

6. 退出 MySQL

exit;

步驟三:恢復安全配置并驗證

1. 停止無密碼運行的 mysqld_safe

sudo pkill mysqld

2. 檢查并刪除 my.cnf 中跳過權限的配置項(如有)

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

確保 [mysqld] 部分中 沒有 skip-grant-tables

3. 重啟 MySQL

sudo systemctl restart mysql

4. 使用密碼登錄驗證

mysql -u root -p
# 輸入上面新設置的密碼

常見問題解答

為什么刪除了配置后還是免密?

mysql.user 表中舊的 root 用戶沒有密碼,權限系統仍然允許直接登錄。

為什么 CREATE USER 失敗?

--skip-grant-tables 模式下權限未激活,部分語句需要先執行 FLUSH PRIVILEGES

ALTER USERUPDATE user 不生效?

可能是因為權限表沒刷新、字段錯誤(MySQL 8 使用 authentication_string 字段),或因為之前的 root 用戶已經損壞。


總結

步驟關鍵操作
跳過驗證--skip-grant-tables 模式啟動
修復 root刪除 + 重新創建 + 設置密碼
權限生效FLUSH PRIVILEGES 是關鍵命令
安全恢復移除配置、重啟服務、驗證密碼

該方案適用于無法找到初始密碼、root 用戶權限損壞等問題,是 MySQL 密碼修復最穩妥的方式。


附加建議

  • 修改密碼后建議立即執行:
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
  • 建議設置復雜密碼,并定期備份 mysql.user 表;
  • 如部署環境建議開啟 skip-name-resolve 提升性能。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/88228.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/88228.shtml
英文地址,請注明出處:http://en.pswp.cn/web/88228.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

題解:P13017 [GESP202506 七級] 線圖

首先明白定義: 線圖 L(G)L(G)L(G) 的頂點對應原圖 GGG 的邊,當且僅當原圖中的兩條邊有公共頂點時,對應的線圖頂點之間有一條邊。 不難想到,對于原圖中的每個頂點 vvv,其度數 d(v)d(v)d(v) 對應的邊集可以形成 (d(v)2)\…

c++ duiLib環境集成2

繼續上一篇,現在需要把控制臺隱藏,只顯示調用duiLib框架顯示的窗口。右鍵項目 → 屬性 → 鏈接器 → 系統 → ?子系統?改為 窗口(/SUBSYSTEM:WINDOWS)。原來是這樣:修改為:運行報錯:需要修改入口函數為WinMain。如下…

常見的網絡攻擊方式及防御措施

常見的網絡攻擊方式及防御措施:全面解析網絡安全威脅 前言肝文不易,點個免費的贊和關注,有錯誤的地方請指出,看個人主頁有驚喜。 作者:神的孩子都在歌唱在信息化高速發展的今天,網絡安全威脅無處不在&#…

JavaScript 中導入模塊時,確實不需要顯式地寫 node_modules 路徑。

1. 正確的導入語法在 Webpack、Vite 等打包工具中,node_modules 目錄是默認的模塊搜索路徑,因此直接寫包名即可:// ? 正確:直接使用包名import nprogress/nprogress.css;// ? 錯誤:不需要顯式寫 node_modules 路徑im…

ELK Stack技術棧

文章目錄一、日志收集所解決的問題二、Elastic Stack 組件介紹2.1 Elasticsearch2.2 Logstash2.3 Kibana2.4 Filebeat beats三、ELK Stack集群安裝3.1 安裝JAVA環境(所有ES節點)3.2 安裝ES集群3.2.1 ES單節點部署3.2.2 ES JAVA調優:堆(heap)內…

大騰智能國產 3D CAD:設計自由度拉滿,數據安全鎖死

在智能制造與數字化轉型的浪潮中,大騰智能CAD作為一款自主研發的三維計算機輔助設計軟件,憑借其從概念設計到制造落地的全流程覆蓋能力,正成為國產工業設計軟件領域的新銳力量。軟件深度融合先進建模技術與工程實踐需求,為機械制造…

ubuntu 操作記錄

1:安裝minicom 1: sudo apt-get install minicom minicom -s 2:Ctrl Z C 的區別 ctrlz的是將任務中斷,但是此任務并沒有結束,他仍然在進程中他只是維持掛起的狀態,用戶可以使用fg/bg操作繼續前臺或后臺的任務,fg命令重新啟動前臺被中斷的任務,bg命令…

深度剖析:向70歲老系統植入通信芯片——MCP注入構建未來級分布式通信

> 如何讓老舊系統重獲新生?協議注入技術是關鍵。 ## 一、當遺留系統遇上分布式未來:一場艱難的對話 想象一下:你負責維護一套誕生于20年前的單體式銀行核心系統,它像一位固執的70歲老人,使用著陳舊的TCP自定義協議。這時業務部門要求實現與云原生風險分析引擎的實時…

針對 SSD 固態硬盤的安全擦除 Secure Erase

SSD 的安全擦除(Secure Erase)用于永久刪除存儲介質上的數據,以及在驅動器性能開始明顯下降至低于標稱值時恢復其速度。Secure Erase 可以解決的問題核心當 SSD 開始運行緩慢(讀寫數據變差)時,這里有許多可…

Three.js搭建小米SU7三維汽車實戰(3)軌道控制器

往期內容: Three.js搭建小米SU7三維汽車實戰(1)搭建開發環境 Three.js搭建小米SU7三維汽車實戰(2)場景搭建 軌道控制器 軌道控制器可以改變相機在空間坐標系中的位置 進而方便從不同的角度觀察物體 1. 軌道控制器響…

C++樹狀數組詳解

C樹狀數組深度解析 第1章 引言:為什么需要樹狀數組 1.1 動態序列處理的挑戰 在現代計算機科學中,我們經常需要處理動態變化的序列數據,這類數據具有以下特點: 實時更新:數據點會隨時間不斷變化頻繁查詢:需要…

TeamT5-ThreatSonar 解決方案:構建智能動態的 APT 與勒索軟件防御體系

一、核心功能深度解析:從威脅狩獵到自動化響應的閉環能力 (一)威脅狩獵:主動挖掘潛伏性攻擊的 “數字偵探” 多層級威脅識別引擎: 靜態特征匹配:內置超 1000 種 APT 后門簽名(如 Regin、Duqu 等…

C#基礎篇(10)集合類之列表

C# 中的列表(List)詳解列表(List)概述在C#中&#xff0c;List<T>是System.Collections.Generic命名空間中的一個泛型集合類&#xff0c;它提供了動態大小的數組功能&#xff0c;可以存儲指定類型的元素。列表的創建與初始化// 創建一個空列表 List<int> numbers n…

SpringBoot訂單模塊核心接口設計與實現

目錄 一、 管理端接口實現 (后臺管理系統) 一、訂單搜索 (高權重 - 核心管理功能) 1.Controller (OrderController): 2.Service (OrderService): 3.ServiceImpl (OrderServiceImpl): 1.使用MyBatis分頁插件PageHelper 2.基礎數據查詢 4.Mapper (OrderMapper): 5.Mapper …

EXCEL鏈接模板無法自動鏈接到PowerBI?試試這個方法

在使用EXCEL鏈接模板連接PowerBI時&#xff0c;你有沒有遇到如圖所示的提示呢&#xff1a;下面我來分享一下&#xff0c;出現彈框的原因及解決方法&#xff1a;首先我們先看一下這個英文翻譯&#xff0c;意思就是說&#xff0c;我們只能使一個PowerBI文件處于打開的狀態&#x…

最新全開源禮品代發系統源碼/電商快遞代發/一件代發系統

簡介&#xff1a;最新全開源禮品代發系統源碼/電商快遞代發/一件代發系統測試環境&#xff1a;Nginx PHP7.2 MySQL5.6圖片&#xff1a;

Android 事件分發機制深度解析

一、事件分發機制核心概念1. 事件分發三要素要素作用關鍵方法事件(Event)用戶觸摸動作的封裝MotionEvent分發者負責將事件傳遞給下級dispatchTouchEvent()攔截者決定是否截斷事件傳遞&#xff08;僅ViewGroup&#xff09;onInterceptTouchEvent()消費者最終處理事件的組件onTou…

從威脅檢測需求看兩類安全監測平臺差異

在網絡安全領域&#xff0c;針對不同場景的威脅檢測需求&#xff0c;衍生處了多種技術架構的安全監測平臺。盡管它們的目標均為“識別異常行為、阻斷潛在威脅”&#xff0c;但根據其核心引擎的配置的技術側重點&#xff0c;可大致分為兩類&#xff1a;聚焦基礎入侵檢測的平臺與…

useContext:React 跨組件數據共享的優雅解決方案

關鍵點 useContext&#xff1a;React 提供的 Hook&#xff0c;用于在組件樹中共享全局狀態&#xff0c;簡化跨組件數據傳遞。應用場景&#xff1a;主題切換、用戶認證、語言設置和全局配置管理。實現方式&#xff1a;結合 createContext 和 useContext&#xff0c;實現靈活的狀…

20250706-8-Docker快速入門(下)-Dockerfile介紹與基本使用_筆記

一、Dockerfile構建鏡像1. Dockerfile概述&#xfeff;定義&#xff1a;Dockerfile是一個用于自動構建鏡像的文本文件&#xff0c;由一條條指令組成工作原理&#xff1a;指令逐步執行&#xff0c;每個指令完成不同功能典型指令示例&#xff1a;FROM centos:latest&#xff1a;基…