修改密碼通常需要 root 權限,一般使用者需請管理員協助。
| 方法 | 工具/指令 | 需 FLUSH PRIVILEGES | 適用場景 |
|---|---|---|---|
| 一 | phpMyAdmin (GUI) | 視操作而定 | 圖形化管理、批量帳號維護 |
| 二 | mysqladmin -u root -p oldpwd newpwd |
否 | 命令列快速改密、腳本自動化 |
| 三 | INSERT INTO mysql.user (Host,User,Password) VALUES('%','user',PASSWORD('pwd')); |
是 | 新增用戶並設密碼 |
| 四 | REPLACE INTO mysql.user ... |
是 | 覆蓋式新增/更新用戶 |
| 五 | SET PASSWORD FOR user@'%' = PASSWORD('pwd'); |
否 | 修改既有用戶密碼(推薦) |
| 六 | GRANT USAGE ON *.* TO user@'%' IDENTIFIED BY 'pwd'; |
否 | 授權同時設密碼、無需 PASSWORD() |
PASSWORD() 為 MySQL 內建加密函數,勿在 SET PASSWORD/GRANT 中重複使用(會雙重加密)FLUSH PRIVILEGES 僅在直接操作 mysql.user 表(INSERT/REPLACE/UPDATE/DELETE)時需要mysqladmin 無法將密碼設為空值mysqladmin 連線失敗,請檢查 skip-networking、防火牆、socket 路徑SELECT User, Host, Password FROM mysql.user;