Access denied for user 'root'@'localhost' (using password: YES)
表示:root@localhost 此帳號存在,但密碼錯誤、或權限表損壞、或 skip-grant-tables 未生效。
--skip-grant-tables 啟動:mysqld_safe --skip-grant-tables --skip-networking &mysql -u rootUPDATE mysql.user SET authentication_string=PASSWORD('newpwd') WHERE User='root';FLUSH PRIVILEGES;mysqladmin -u root -p'oldpwd' password 'newpwd'
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'newpwd' WITH GRANT OPTION;
FLUSH PRIVILEGES;
| 現象 | 真相 |
|---|---|
| 密碼確定正確但報錯 | 可能是 plugin 欄位為 auth_socket(Linux 套接字認證),需改為 mysql_native_password |
| 修改密碼後應用連不上 | 應用用的是 root@% 而非 root@localhost,需同步修改所有 Host |
| Windows 服務啟動失敗 | 配置檔路徑錯誤、datadir 權限、端口衝突,查看錯誤日誌 |