[mysql] Access denied for user ‘root’@’localhost’ (using password: YES)

作爲一個菜鳥,在localhost修改mysql密碼的時候手抖,導致root權限丟失,再次登陸出現如下提示:

Access denied for user 'root'@'localhost' (using password: YES)

這時候,密碼是正確的,並且已被修改,但是root賬戶的權限丟失導致無法登陸數據庫。
在網上一個個帖子翻看,摸索出來一套解決方案

第一步
關閉mysql服務。
在mysql安裝目錄中,用記事本打開my.ini 在最後一行加入如下代碼:
skip-grant-tables
保存,啓動mysql

這時候,mysql登陸是跳開驗證的。
在命令行中,輸入

mysql -u root -p
【輸入當前密碼】
use mysql
(這時候我們需要給root以更新的權限)
update user set Update_priv=‘Y’ where user=‘root';
(然後是設置權限的權限)
update user set Grant_priv =’Y’ where user = ‘root';
flush privileges;//刷新權限
(給它最高權限)
grant all privileges on *.* to root@'localhost' identified by "123" with grant option;//123是密碼
flush privileges;

這時候給了root之前的權限了
輸入 exit 退出mysql
關閉mysql服務

再次打開my.ini,改回原來的狀態。
保存,打開mysql服務。
在命令行輸入mysql -u root -p;
這時就可以正常使用了。

具體情況可能有所出入,大家可以多看看大牛們的帖子~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章