2 回答

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

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