( Linux ) 【解決】 sshでMySQLの操作権限を持つユーザーを削除しても、削除が反映されない 【FLUSH PRIVILEGES】
①ユーザーをGRANT文で作成
GRANT select,insert,update,delete ON *.* TO testuser IDENTIFIED BY 'password' WITH GRANT OPTION;
②show grants でユーザー権限を確認
show grants for testuser;
出力結果
+---------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'testuser'@'%'
IDENTIFIED BY PASSWORD '0d59dfc910205df0' WITH GRANT OPTION |
+---------------------------------------------------------------+
③作成したユーザーをdelete文で削除
delete from mysql.user where user='testuser';
④show grants でユーザー権限を再確認
show grants for testuser;
出力結果
+---------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'testuser'@'%'
IDENTIFIED BY PASSWORD '0d59dfc910205df0' WITH GRANT OPTION |
+---------------------------------------------------------------+
となってしまい、ユーザーの削除が反映されない。phpmyadminにも testuser でログインできてしまう。
困ったもんだと色々と調べていると、どうやらユーザーを削除した後に、
⑤FLUSH PRIVILEGES;
を実行しないといけないらしい。
FLUSH は内部キャッシュをクリア、または再ロードする構文で、
FLUSH PRIVILEGES でMySQLデータベース内で供与テーブルから権限を再ロードするそうです。
ユーザーの作成、削除の際には気をつけましょう。