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

MySQL Root 密碼修改全攻略:四種實用方法與遺失密碼救援

     編輯:MySQL 綜合教學

MySQL Root 密碼修改全攻略:四種實用方法與遺失密碼救援

定期更換資料庫根帳號密碼是資安基本功。MySQL 提供多種修改密碼的途徑,適用於不同場景。本文整理四種主流方法,並詳細說明忘記 Root 密碼時的緊急重置流程,助你輕鬆掌控資料庫存取權限。

方法一:使用 SET PASSWORD 指令(需登入 MySQL)

mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

適用於已知當前密碼、需在 SQL 介面內快速變更的情境。

方法二:使用 mysqladmin 工具(命令列直接操作)

# 首次設定密碼(root 原本無密碼)
mysqladmin -u root password "newpass"

# 已有密碼時變更
mysqladmin -u root -p oldpass password "newpass"

無需進入 MySQL Shell,適合腳本自動化部署。

方法三:直接 UPDATE mysql.user 表(需刷新權限)

mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
mysql> FLUSH PRIVILEGES;

底層操作,理解權限表結構時可用;務必執行 FLUSH PRIVILEGES 使變更立即生效。

方法四:遺失 Root 密碼時的緊急重置(Skip Grant Tables)

當完全忘記 Root 密碼,可透過跳過權限驗證模式進入資料庫重置:

  1. 停止 MySQL 服務。
  2. 以 mysqld_safe --skip-grant-tables & 啟動臨時實例(不驗證密碼)。
  3. 免密登入:mysql -u root mysql
  4. 更新密碼並刷新權限:
mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';
mysql> FLUSH PRIVILEGES;
  1. 重新正常啟動 MySQL 服務,即可使用新密碼登入。

安全提醒:--skip-grant-tables 會暫時關閉所有權限檢查,僅在受信任的內網環境短暫使用,操作完成後務必立即重啟正常模式。

快速對照表

方法適用場景是否需舊密碼生效方式
SET PASSWORDSQL 介面互動式修改是即時
mysqladmin命令列/自動化腳本視情況即時
UPDATE user 表批次/底層控制是需 FLUSH PRIVILEGES
Skip Grant Tables忘記密碼緊急救援否重啟服務後生效

最佳實務建議

  • 生產環境建議定期輪換 Root 密碼,並採用高強度亂碼。
  • 避免在腳本中明文寫入密碼,改用 --defaults-extra-file 指向受保護的設定檔。
  • 重要系統應建立專用管理帳號,降低 Root 直接登入頻率。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved