錯誤現象:Access denied for user 'root'@'localhost' (using password: YES),常見於遺忘 root 密碼或權限表損壞。Windows 環境下透過 skip-grant-tables 跳過密碼驗證重置密碼。
net stop mysql
my.ini(預設 C:\Program Files\MySQL\MySQL Server 5.x\my.ini),在 [mysqld] 區塊下新增:
skip-grant-tables保存退出。
net start mysql
mysql -u root -p -- 提示輸入密碼時直接按 Enter
authentication_string 欄位):
USE mysql;
UPDATE user SET authentication_string=PASSWORD('新密碼') WHERE User='root';
FLUSH PRIVILEGES;
QUIT;
MySQL 5.6 或更早版本用 UPDATE user SET Password=PASSWORD('新密碼') WHERE User='root';
net stop mysql -- 編輯 my.ini 刪除或註釋 skip-grant-tables net start mysql
mysql -u root -p新密碼
skip-grant-tables 期間任何人可免密登入,**務必在安全網路環境下操作,完成後立即移除**authentication_string,且預設採用 caching_sha2_password 插件,若連接失敗可嘗試 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';net start mysql 失敗,檢查錯誤日誌 .err 確認具體原因