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

MySQL 密碼修改完整指南:命令列、SQL 語句與安全最佳實踐

     編輯:MySQL 資料庫相關知識

方法一:mysqladmin 命令列工具(適用於 root 或已知密碼帳號)

mysqladmin -u username -p'old_password' password 'new_password'
  • -u 後緊接用戶名,-p 後緊接舊密碼(無空格)。
  • password 關鍵字與新密碼之間必須有空格。
  • 在 Windows CMD 中執行,非 MySQL Client 內部。

操作示例

C:\> mysqladmin -u root -p'root' password '2006'
C:\> mysqladmin -u root -p'2006' password 'root'

第二次修改時未帶 -p 參數,工具會互動提示輸入舊密碼。

方法二:SQL 語句修改(需登入 MySQL,具備 SUPER 或 UPDATE mysql.user 權限)

1. ALTER USER(MySQL 5.7.6+ 推薦)

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

2. SET PASSWORD

SET PASSWORD FOR 'root'@'localhost' = 'new_password';

3. 直接更新 mysql.user 表(不推薦,易出錯)

UPDATE mysql.user SET authentication_string = PASSWORD('new_password')
WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;

忘記 root 密碼?跳過授權表重置

  1. 停止 MySQL 服務。
  2. 以 --skip-grant-tables 啟動:mysqld --skip-grant-tables &
  3. 無密碼登入:mysql -u root
  4. 執行更新語句並 FLUSH PRIVILEGES;
  5. 正常重啟 MySQL 服務。

安全最佳實踐

  • 密碼長度 ≥ 12 字元,包含大小寫、數字、特殊符號。
  • 定期輪換(建議 90 天),避免重複使用歷史密碼。
  • 生產環境禁用 root 遠程登入:UPDATE mysql.user SET Host='localhost' WHERE User='root';
  • 使用密碼管理工具(如 Vault、KeePass)儲存,嚴禁明文寫在腳本/配置檔。
  • 啟用 validate_password 元件強制密碼複雜度策略。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved