大多數修改密碼操作需要 root 權限,一般使用者無法自行修改,需請求管理員協助。
mysql 資料庫 → user 表Password 欄位必須選擇 PASSWORD() 函數輸入新密碼mysqladmin -u root -p password 'newpass'
# 輸入 root 原密碼後生效
# 將 root 改為你的用戶名可改自己的密碼
# 限制:無法清空密碼;需 mysqladmin 能連線 Server
INSERT INTO mysql.user (Host, User, Password)
VALUES ('%', 'jeffrey', PASSWORD('biscuit'));
FLUSH PRIVILEGES;
實質是建立新帳號,需 FLUSH PRIVILEGES 重載權限。
REPLACE INTO mysql.user (Host, User, Password)
VALUES ('%', 'jeffrey', PASSWORD('biscuit'));
FLUSH PRIVILEGES;
帳號存在則更新,不存在則插入。
SET PASSWORD FOR jeffrey@'%' = PASSWORD('biscuit');
# 必須用 PASSWORD() 函數
# 不需 FLUSH PRIVILEGES
GRANT USAGE ON *.* TO jeffrey@'%' IDENTIFIED BY 'biscuit';
# 這裡 PASSWORD() 函數是選用的(會自動加密)
# 不需 FLUSH PRIVILEGES
| 方法 | 需 root | 需 FLUSH | 可清空密碼 | 適用場景 |
|---|---|---|---|---|
| phpMyAdmin | 是 | 否 | 是 | 圖形介面習慣者 |
| mysqladmin | 否(特例) | 否 | 否 | 命令列、腳本自動化 |
| INSERT | 是 | 是 | 是 | 批量建帳號腳本 |
| REPLACE | 是 | 是 | 是 | 同步外部帳號系統 |
| SET PASSWORD | 是 | 否 | 是 | 單一帳號密碼變更 |
| GRANT IDENTIFIED BY | 是 | 否 | 是 | 權限與密碼同步設定 |