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

MySQL 修改密碼六大方法總結:從 phpMyAdmin 到 SQL 語句全覆蓋

     編輯:MySQL 資料庫相關知識

MySQL 密碼修改通常需要 root 權限,普通用戶需請求管理員協助。本文彙總六種修改密碼方式,涵蓋圖形工具、命令行工具、SQL 語句,並標註適用場景與注意事項。

方法一:phpMyAdmin 圖形界面(最直觀)

  • 登錄 phpMyAdmin → 選擇 mysql 資料庫 → 編輯 user 表 → 修改 Password 欄位,必須選擇 PASSWORD() 函數加密 → 執行。
  • 適用:已部署 phpMyAdmin、偏好可視化操作的管理員。

方法二:mysqladmin 命令行(專用工具)

mysqladmin -u root -p password 'NewPass123'
# 提示輸入舊密碼,成功後 root 密碼更新
# 修改其他用戶:mysqladmin -u username -p password 'NewPass'
  • 限制:無法將密碼設為空;若 mysqladmin 無法連接服務則失效。

方法三:INSERT 新用戶並指定密碼(需 FLUSH)

INSERT INTO mysql.user (Host, User, Password) VALUES ('%', 'jeffrey', PASSWORD('biscuit'));
FLUSH PRIVILEGES;
  • 本質是創建用戶,必須使用 PASSWORD() 加密,並手動 FLUSH PRIVILEGES 刷新內存授權表。

方法四:REPLACE 覆蓋/創建用戶(需 FLUSH)

REPLACE INTO mysql.user (Host, User, Password) VALUES ('%', 'jeffrey', PASSWORD('biscuit'));
FLUSH PRIVILEGES;
  • 若用戶存在則更新,不存在則插入,同樣需 PASSWORD() 與 FLUSH PRIVILEGES。

方法五:SET PASSWORD 語句(無需 FLUSH,推薦)

SET PASSWORD FOR jeffrey@'%' = PASSWORD('biscuit');
  • 自動刷新權限緩存,無需手動 FLUSH PRIVILEGES。
  • 需使用 PASSWORD() 函數。

方法六:GRANT ... IDENTIFIED BY(最簡單、自動加密)

GRANT USAGE ON *.* TO jeffrey@'%' IDENTIFIED BY 'biscuit';
  • 無需 PASSWORD(),無需 FLUSH,GRANT 內部自動處理加密與刷新。
  • USAGE 僅修改密碼不授予任何權限;若需同時授權可換為具體權限。

關鍵提醒

  1. MySQL PASSWORD() 非系統 crypt(),不可通用於 Unix 帳號。
  2. 5.7.6+ 棄用 PASSWORD(),8.0 移除,改用 ALTER USER ... IDENTIFIED BY 或 SET PASSWORD 原生支持。
  3. 修改 root 密碼後,腳本/應用配置文件同步更新,避免服務中斷。
  4. 生產環境建議:定期輪換、強密碼策略、審計密碼變更日志。

根據環境版本與操作習慣選擇合適方式,核心原則:加密存儲、即時生效、留存審計。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved