錯誤訊息 Access denied for user 'root'@'localhost' (using password: YES/NO) 表示認證失敗,常見原因:密碼錯誤、權限表損壞、主機名不符、密碼插件不相容。
net stop mysql
cd /d "D:\Program Files\MySQL\MySQL Server 5.2\bin"
mysqld --defaults-file="D:\Program Files\MySQL\MySQL Server 5.2\my.ini" --console --skip-grant-tables
啟動成功會顯示 mysqld: ready for connections,保持此視窗開啟。
mysql -u root
USE mysql;
-- MySQL 5.x
UPDATE user SET Password=PASSWORD('新密碼') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;
mysqld --console 視窗 (Ctrl+C)net start mysqlmysql -u root -p新密碼 驗證user.Host 是否匹配 (localhost vs 127.0.0.1 vs %)ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密碼';MySQL 5.7+ 首次安裝會生成隨機密碼,查看錯誤日誌:
grep 'temporary password' /var/log/mysqld.log
# 使用臨時密碼登入後必須修改密碼
-- 重建權限表 (謹慎操作,備份先)
mysql_upgrade -u root -p --force
systemctl stop mysqld
mysqld_safe --skip-grant-tables --skip-networking &
mysql -u root
# 執行相同 UPDATE/FLUSH PRIVILEGES
systemctl restart mysqld
mysql 系統資料庫validate_password 元件強化密碼政策