平常刪除帳號都用drop user,今天需要對某個DB刪除大量帳號,想說直接delete from mysql.user最快了,刪完用MySQL Workbench開啟來看是否刪乾淨了,結果發現帳號還在,只是前面多了"(!)"符號
點擊某個帳號,出現下列訊息,好像告訴我沒有刪除乾淨
Account user_name@host_name does not exists but it still has privileges defined for following objects:database_name
猛然想起mysql.db好像也要刪除,所以若不用drop user而直接清除user資料表,別忘記db資料表也要清喔,完整的刪除方式如下
DELETE FROM mysql.user WHERE user='phpmyadmin' and host='localhost';
DELETE FROM mysql.db WHERE user='phpmyadmin' and host='localhost';
FLUSH PRIVILEGES;
若用別的client工具似乎不會發現這個問題,我用Navicat打開是不會看到只刪user未刪db的帳號喔!
0 意見:
張貼留言