読者です 読者をやめる 読者になる 読者になる

炊きたてのご飯が食べたい

定時に帰れるっていいね。自宅勤務できるっていいね。子どもと炊きたてのご飯が食べられる。アクトインディでは積極的にエンジニアを募集中です。

( 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データベース内で供与テーブルから権限を再ロードするそうです。
ユーザーの作成、削除の際には気をつけましょう。