# 本機
mysqladmin -u root -p password 'NewPass123!'
# 遠端(需客戶端工具)
mysqladmin -u root -h db_host -p password 'NewPass123!'
mysql -u root -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!';
-- MySQL 5.7.6 以前
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NewPass123!');
mysql> FLUSH PRIVILEGES;
| 方式 | 前置條件 | 適用場景 |
|---|---|---|
| mysql client | 遠端機安裝 mysql client | CLI 操作、腳本自動化 |
| mysqladmin | 遠端機安裝 mysql client | 單一管理指令 |
| phpMyAdmin / Adminer | Web 伺服器 + PHP | 圖形化介面、多使用者協作 |
-- 建立使用者並授權
CREATE USER 'dog'@'%' IDENTIFIED BY 'DogPass456!';
GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'dog'@'%';
FLUSH PRIVILEGES;
切勿直接 INSERT INTO mysql.user,易導致權限欄位缺失、密碼雜湊格式錯誤。
DROP USER 'mice'@'%';
FLUSH PRIVILEGES;
等同於刪除 mysql.user 表對應列,但更安全且自動清理相關權限表。
ERROR 1133 (42000): Can't find any matching row in the user table → 確認 user@host 完全匹配(含萬用字元);ERROR 1396 (HY000): Operation CREATE USER failed → 使用者已存在,先 DROP USER 或改用 ALTER USER;validate_password 參數或使用更複雜密碼。