1. 程式人生 > >Access denied for user [email protected]

Access denied for user [email protected]

忘記了root密碼,或者刪了root的一些許可權,換來一堆報錯,比如

ERROR 1142 (42000): SELECT command denied to user 'root'@'localhost' for tab
ERROR 1045 (28000): Access denied for user 'root'@'localhost'

這個時候最好別慌,如果是用Navicat,這個時候千萬別關閉連結。馬上把使用者建立回來,並且不要吝嗇許可權,能給它配的全配了。不過這都是理想狀態,可能慌張,可能是在清潔髒使用者就想著“惜權”不配全部許可權。好吧,萬一最糟糕的發生了呢?還是說說如何補救。

救場步驟:

1,修改/etc/my.cnf配置,繞過許可權判斷

[mysqld]
skip-grant-tables

2,重啟mysql,進入控制檯(此時已無需密碼),先重新整理許可權。記住先別忙著就操作許可權和密碼,先執行以下語句,否則你的操作依然會繼續報錯。

 flush privileges;

3,然後重置root密碼,或者給root新增許可權。

update mysql.user set authentication_string=password('新密碼') where user='root';//mysql 5.7

grant all privileges on *.* to
[email protected]
'localhost';

 

4,最後還原一下my.cnf,然後重啟。