4 回答

TA貢獻1871條經驗 獲得超13個贊
必須使用flush privileges的兩種情況
1、改密碼。
2、授權超用戶。
flush privileges 命令本質上的作用是將當前user和privilige表中的用戶信息/權限設置從mysql庫(MySQL數據庫的內置庫)中提取到內存里。
MySQL用戶數據和權限有修改后,希望在"不重啟MySQL服務"的情況下直接生效,那么就需要執行這個命令。
通常是在修改ROOT帳號的設置后,怕重啟后無法再登錄進來,那么直接flush之后就可以看權限設置是否生效。而不必冒太大風險。
擴展資料:
mysql 修改密碼后,注意flush privileges。
mysql 新設置用戶或更改密碼后需用flush privileges刷新MySQL的系統權限相關表,否則會出現拒絕訪問,還有一種方法,就是重新啟動mysql服務器,來使新設置生效。
具體例子:
1、用戶root用戶進入mysql再打開mysql數據庫(use mysql)后。
create user stu identified by ‘stu’; ##創建一用戶stu并添加密碼為stu。
exit; ##退出測試。
2、用新用戶重新進入mysql。
mysql -ustu -pstu ##進入成功。
3、重新使用root用戶進入mysql并打開mysql數據庫。
update user set password=password (‘123456’) where user='stu'; ##更改stu用戶密碼為123456。
exit; ##再次退出測試。
4、直接以用戶stu身份進入,用新密碼進入看是否成功。
mysql -ustu -p123456; ##報錯,密碼不正確。
5、重新以root 用戶登陸并進入mysql數據庫,重新修改用戶密碼。
update user set password=password (‘123456’) where user='123456'; ##更改stu用戶密碼為123456
flush privileges; ##刷新MySQL的系統權限相關表。
exit;
6.再次退出,并以stu用戶123456密碼進入,測試成功。

TA貢獻1824條經驗 獲得超6個贊
flush privileges 命令本質上的作用是將當前user和privilige表中的用戶信息/權限設置從mysql庫(MySQL數據庫的內置庫)中提取到內存里。MySQL用戶數據和權限有修改后,希望在"不重啟MySQL服務"的情況下直接生效,那么就需要執行這個命令。通常是在修改ROOT帳號的設置后,怕重啟后無法再登錄進來,那么直接flush之后就可以看權限設置是否生效。而不必冒太大風險。

TA貢獻2036條經驗 獲得超8個贊
1.用戶root用戶進入mysql再打開mysql數據庫(use mysql)后-
create user xh identified by ‘xh’; //創建一用戶xh并添加密碼為xh-
exit; //退出測試-
2.返回C目錄下用新用戶重新進入mysql-
mysql -uxh -pxh //進入成功-
3.重新使用root用戶進入mysql并打開mysql數據庫-
update user set password=password (‘monkey’) where user=’xh’; //更改xh用戶密碼為monkey-
exit; //再次退出測試-
4.直接以用戶XH身份進入,用新密碼進入看是否成功-
mysql -uxh -pmonkey; //報錯,密碼不正確-
5. 重新以ROOT 用戶登陸并進入mysql數據庫,重新修改用戶密碼-
update user set password=password (‘monkey’) where user=’xh’; //更改xh用戶密碼為monkey-
flush privileges; //刷新MySQL的系統權限相關表-
exit;-
6.再次退出,并以xh用戶monkey密碼進入,測試成功!-
添加回答
舉報