首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Ubuntu 下 MySQL root 登錄失敗:利用 debian-sys-maint 緊急入庫重置密碼圖文教程

     編輯:MySQL 綜合教學

Ubuntu 下 MySQL root 登錄失敗:利用 debian-sys-maint 緊急入庫重置密碼圖文教程

Ubuntu 官方 MySQL 包安裝後,root 默認無密碼或密碼未知,直接 mysql -u root -p 報 Access denied。Ubuntu 預置維護帳戶 debian-sys-maint 擁有完全權限,密碼存於 /etc/mysql/debian.cnf,可作為「萬能鑰匙」重置 root 密碼。

步驟 1:讀取維護帳戶憑證

cat /etc/mysql/debian.cnf
# 輸出示例:
# [client]
# host     = localhost
# user     = debian-sys-maint
# password = xYzAbC123
# socket   = /var/run/mysqld/mysqld.sock

步驟 2:以維護帳戶登錄

mysql -u debian-sys-maint -p
# 輸入上方 password(建議複製貼上,避免手輸錯誤)

步驟 3:重置 root 密碼

USE mysql;
UPDATE user SET authentication_string=PASSWORD('NewRootPass123!') WHERE User='root';
FLUSH PRIVILEGES;
QUIT;

MySQL 5.7+ 字段為 authentication_string,5.6 為 Password,8.0 建議 ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewRootPass123!';

步驟 4:驗證新密碼

mysql -u root -p
# 輸入 NewRootPass123! 登錄成功

原理說明

  • debian-sys-maint 是 Ubuntu 維護腳本(logrotate、啟動檢查)使用的內部帳戶,擁有 RELOAD、SHUTDOWN、PROCESS、SUPER 等高權限。
  • 密碼隨包安裝隨機生成,存明文於 debian.cnf(僅 root 可讀),安全性可控。
  • 此法避免了 --skip-grant-tables 需重啟服務的停機時間。

補充:若 debian.cnf 丟失或帳戶被誤刪

  1. 停止服務:systemctl stop mysql。
  2. mysqld_safe --skip-grant-tables --skip-networking &。
  3. 免密登錄 root 重置密碼(通用法)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved