修改MySQL密碼通常需root權限,一般用戶須請求管理員協助。本文彙整六種常用修改方式,涵蓋圖形工具、命令列工具與SQL指令,供不同場景選用。
登入phpMyAdmin → 選擇mysql資料庫 → 編輯user表 → 修改Password欄位,**務必使用PASSWORD()函數加密** → 執行儲存。
mysqladmin -u root -p password 'newpass'
輸入舊密碼後生效。將root替換為自身用戶名即可修改自身密碼。限制:無法清空密碼、需mysqladmin可連線伺服器。
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;
若帳號存在則更新,不存在則新增,同樣需FLUSH PRIVILEGES。
SET PASSWORD FOR jeffrey@'%' = PASSWORD('biscuit');
需使用PASSWORD()函數,**不需**執行FLUSH PRIVILEGES,MySQL會自動重載權限。
GRANT USAGE ON *.* TO jeffrey@'%' IDENTIFIED BY 'biscuit';
無需PASSWORD()函數,**無需**FLUSH PRIVILEGES,語法最簡潔、最不易出錯。
PASSWORD()**非**Unix crypt()演算法,不可互通。root密碼後,若mysqladmin status仍免密登入,需執行mysqladmin reload重載授權表。GRANT ... IDENTIFIED BY或SET PASSWORD,減少手動加密與重載疏漏。