當遺忘 MySQL Root 密碼導致無法登入時,可利用 skip-grant-tables 略過權限驗證,進入資料庫直接修改 user 表重置密碼。以下為 Windows 環境實測步驟。
my.ini(通常位於 MySQL 安裝目錄)。my.ini,在 [mysqld] 區塊下新增:skip-grant-tables
以系統管理員身分開啟「服務」,重新啟動 MySQL 服務,使設定生效。
bin 目錄(例:d:\software\mysql\MySQL Server 5.6\bin):d: cd "d:\software\mysql\MySQL Server 5.6\bin"
mysql -u root -p Enter password: <直接按 Enter>
show databases;
use mysql;
update mysql.user set password=PASSWORD('你的新密碼') where User='root';
flush privileges;
quitmy.ini,移除或註解掉 skip-grant-tables。skip-grant-tables 會讓資料庫處於無認證狀態,務必在完成密碼重置後立即移除並重啟服務。password 欄位改為 authentication_string,語法需調整為:update mysql.user set authentication_string=PASSWORD('新密碼') where User='root';flush privileges; 才能讓修改即時生效。此法適用於所有作業系統,核心邏輯相同:修改設定略過授權 → 免密登入 → 更新密碼表 → 還原設定。建議平時妥善保管密碼,或使用密碼管理工具避免遺忘。