爲數據庫的安全性將mysql數據庫root用戶的權限設置爲只有select權限,但是之後在更改數據庫的數據表或者刪除表的時候出現1045錯誤

1045:Access denied for user ‘root’@localhost (using password: YES)
解決辦法如下:
(1)找到mysql安裝目錄下的my.ini或者是my-default.ini文件,用記事本打開之後,添加skip-grant-tables(不使用密碼登錄mysql),保存之後退出。
(2)使用管理員權限打開cmd窗口,進入mysql安裝目錄中的bin文件夾,停止mysql服務(net stop mysql),開啓mysql服務(net start mysql),使配置生效。
(3)在bin目錄下,輸入mysql -u root -p

不用輸入密碼,直接enter就可以進入數據庫了。

(4)手動修改用戶root的權限,使其可以設置權限

執行命令:UPDATE mysql.user SET Grant_priv=‘Y’, Super_priv=‘Y’ WHERE User=‘root’;
執行命令:flush privileges; 刷新緩衝區。
執行命令:grant all on . to ‘root’@‘localhost’; 重新給用戶root賦權。

執行命令: flush privileges; 重新刷新緩衝區。
這個時候再重新啓動mysql服務就可以在mysql數據庫只能夠查看root用戶已經擁有所有的權限了。
在這裏插入圖片描述

(5)修改密碼
進入mysql數據庫,mysql -u root -p 輸入密碼之後就可以進入了。執行命令:

alter user ‘root’@‘localhost’ identified by ‘密碼’;
之後再次刷新緩衝區,重啓mysql服務就可以使用新設置的密碼登錄了。

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