遺忘 MySQL root 密碼時,可透過 --skip-grant-tables 跳過權限驗證登入,更新 mysql.user 表重置密碼,最後重啟服務生效。
mysqld.exe、mysql.exe 所在目錄 (通常在 bin 目錄),複製路徑。cd 到 bin 目錄。mysqld.exe 進程。mysqld --skip-grant-tables,視窗會卡住 (正常),保持開啟。mysql 回車,即可進入 MySQL Shell。USE mysql;
UPDATE user SET password=PASSWORD('123456') WHERE user='root' AND host='localhost';
FLUSH PRIVILEGES;
SELECT user,host,password FROM user; 確認 root@localhost 密碼已更新。--skip-grant-tables 的 CMD 視窗,正常啟動 MySQL 服務 (或重啟電腦)。mysql -u root -p123456 應成功進入。user 表是否存在空密碼匿名帳號,建議刪除或設定密碼。password 欄位改為 authentication_string,SQL 需相應調整:UPDATE user SET authentication_string=PASSWORD('123456') ...。systemctl stop mysqld 停服務,mysqld_safe --skip-grant-tables & 啟動。