Linux 新裝 MySQL,修改 root 密碼後一小時即忘記。靈感來自 Windows 同版本 MySQL 仍有預設密碼,嘗試複製 Windows 的 user 表檔案覆蓋 Linux 資料目錄。
user 表三個檔案:c:\mysql\data\mysql\user.frm/.MYD/.MYI/var/lib/mysql/mysql/user.frm/.MYD/.MYI.MYD 即可)。chown -R mysql:mysql user.*
chmod 600 user.*
FLUSH PRIVILEGES 成功。DELETE FROM user WHERE User='';
DELETE FROM user WHERE Host='%';
FLUSH PRIVILEGES;
killall -TERM mysqld(非 kill -9)。mysqld_safe --skip-grant-tables &(Windows: mysqld --skip-grant-tables)。mysql mysql
UPDATE user SET Password=PASSWORD('新密碼') WHERE User='root';
FLUSH PRIVILEGES;
mysqladmin flush-privileges 或 SQL FLUSH PRIVILEGES。user.MYD 加密密碼串(需已知密文,且結構複雜,不推薦)。user 表檔案同樣可行,但需注意版本相容性與檔案權限。user 表可行,但必須修正檔案擁有者與權限。--skip-grant-tables 法最通用、最安全,建議優先採用。FLUSH PRIVILEGES 並清理匿名/過寬權限帳號。