當忘記MYSQL 密碼或是將一個資料庫儲存實體移至在別處執行時
有可能會出現以下訊息:
ERROR 1045 (28000): Access denied for user 'root'@'127.0.0.1' (using password: YES)
如要重設密碼來解這問題,可以依以下方式操作:
1.先停掉mysql 服務,在console or command line 下執行
mysqld --skip-grant-tables
這個指令用以啟動mysql,但會跳過權限檢查。
網路上有人寫只要在my.ini 之中的
[mysqld] 下加上
skip-grant-tables
後重啟MYSQL 也可以做到
2.要另一個console 下連線mysql的指令
mysql -u root
應該就可以不進行權限驗證,連線登入成功
3.進行密碼的重設
use mysql
UPDATE user SET password=PASSWORD("123456") WHERE User = 'root' AND Host = 'localhost';
而在新版的MYSQL (EX: v5.7.x )權限架構已有些不同,所以要改用以下指令執行:
UPDATE mysql.user SET authentication_string = PASSWORD('123456'), password_expired = 'N' WHERE User = 'root' AND Host = 'localhost';
4.執行後即完成密碼重置的動作,別忘了 mysql 要重啟服務,如果你不是改在參數檔,像我上述第一點請執行以下指令:
c:\mysql\bin\mysqladmin -u root shutdown
5.重啟後即可利用新密碼登入系統