MySQLで存在しないユーザーを削除したときにエラーになるのを回避する方法を調べました。
MySQL 5.7.6以降
MySQL 5.7.6以降ではDROP USER
構文でIF EXISTS
オプションが利用できる。
DROP USER IF EXISTS user
MySQL 5.7.5以前
IF EXISTS
オプションが使えないため、DROP USER
構文で存在しないユーザーを削除しようとするとエラーになる。これを回避するために、GRANT
構文でユーザー権限を権限なし(USAGE
)に変更(ユーザーが存在しない場合には作成される)してからDROP USER
を実行する。
GRANT USAGE ON *.* TO user IDENTIFIED BY password;
DROP USER user;
※ このSQLはMySQL 5.7.6以降では以下の警告が出る。
1287 Using GRANT statement to modify existing user's properties other than privileges is deprecated and will be removed in future release. Use ALTER USER statement for this operation.