首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 修改用戶密碼四大方法圖文詳解:mysqladmin、UPDATE、SET PASSWORD、root 密碼丟失救援

     編輯:MySQL 資料庫相關知識

方法一:mysqladmin 命令行工具(最簡單)

# 格式
mysqladmin -u USER -p password NEW_PASSWORD

# 示例:將 root 密碼改為 123456
mysqladmin -u root -p password 123456
# 提示輸入舊密碼,驗證通過即生效

適用場景:已知舊密碼、命令行環境、無需登入 MySQL Shell。

方法二:UPDATE mysql.user 表(需登入)

mysql -u root -p
UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE User='root';
FLUSH PRIVILEGES;
  • MySQL 5.7+ 密碼列為 authentication_string;5.6 及之前為 Password。
  • 必須執行 FLUSH PRIVILEGES 刷新內存權限表。

方法三:SET PASSWORD 語句(標準 SQL)

mysql -u root -p
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
-- 或當前用戶
SET PASSWORD = PASSWORD('123456');

優點:語法標準、不依賴具體表結構、自動刷新權限。

方法四:root 密碼丟失 - 緊急救援模式

  1. 編輯 my.ini/my.cnf,[mysqld] 下添加 skip-grant-tables。
  2. 重啟 MySQL 服務。
  3. 無密碼登入:mysql -u root。
  4. 修改密碼並清理:
    UPDATE mysql.user SET authentication_string=PASSWORD('NewPwd123!') WHERE User='root';
    FLUSH PRIVILEGES;
    EXIT;
    
  5. 移除 skip-grant-tables,重啟服務恢復正常認證。

圖形化工具輔助 (MySQL GUI Tools / Workbench)

舊版 MySQLSystemTrayMonitor.exe → 托盤圖標 → Configure Instance → Startup Variables → Security → 勾選「Disable Grant Tables」 → Apply → Restart Service → 進入無密碼模式修改密碼。
現代建議直接用 MySQL Workbench「Server → Users and Privileges」圖形界面修改,直觀且自動生成規範 SQL。

最佳實踐清單

  • 密碼複雜度:≥12 位,含大小寫、數字、特殊符號。
  • 定期輪換:生產環境建議 90 天輪換一次,配合密碼策略插件 validate_password 強制執行。
  • 最小權限:應用賬號僅授予必要庫/表權限,禁用 root 遠程登入。
  • 審計日志:開啟 log_statement=all 或安裝 MariaDB Audit Plugin 記錄密碼變更操作。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved