恢復Root用戶的所有權限

Root用戶無法授權其他用戶

通過Shell登錄Mysql(5.6.30),創建遠程賬戶,授權用戶權限 (失敗) 。

mysql -uroot -p

> 輸入密碼
mysql> use mysql;
mysql> create user user01@'%' identified by 'password' ##創建遠程用戶 user01
mysql> grant all privileges on myDB.* to user01; ##授權 user01 操作 myDB(需要操作的數據庫) 所有權限

一般情況下執行完上述代碼,創建遠程賬戶和授權遠程賬戶就會執行成功 . (但是這次報錯了)

root無法授權其他用戶

1 、Root授權報錯

注意 :
這並不是密碼登錄的時候報錯, 需要你進行修改密碼 。 所以你查詢這個錯誤是容易誤導的。百度給出答案的都是讓你修改密碼 。這時候你要考慮爲什麼執行 grant 命令會報錯 ?

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

2、 查看當前賬戶

select current_user(); ##查看當前用戶 或 select user();

確保當前登錄的用戶是root , 而非其他沒有權限的用戶

3、查看 Root用戶 Grant權限

show grants;

注意箭頭位置 , 當前root的權限並不是所有權限 ( ALL PRIVILEGES )
而是單個組合起來的權限 , 所以當前root不能給其他用戶賦予 all 的權限

修復 Root用戶的所有權限

1、停止Mysql

service mysql status;  ##查看mysql狀態
service mysql stop;    ##停止mysql

2、跳過Mysql權限驗證登錄

> mysqld_safe --skip-grant-tables &
> mysql

或者直接連起來執行 (linux下忘記Mysql密碼可以通過此方式進入Mysql修改密碼)
> mysqld_safe --skip-grant-tables &mysql

3、手動修改用戶的權限 (使其可以設置權限)

UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';

4、刷新系統權限

FLUSH PRIVILEGES;

5、授權ROOT所有權限

GRANT ALL ON *.* TO 'root'@'localhost';  ##授權 root 所有權限

6、查看用戶權限

select * from mysql.user\G    ##\G表示豎着排列查看

就此 ! Root 所有權限已修復完成。 也可以通過 show grants 查看。

修復ROOT所有權限

可以授權其他賬戶啦

GRANT ALL ON *.* TO 'user01'@'%';  ##授權 user01 所有權限

授權其他用戶權限

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