There’s not standard way to check if a MySQL user exists and based on that drop it. Are there any workarounds for this?
Edit: I need a straight way to run this without throwing up an error
e.g.
DROP USER test@localhost; :
To check how many users are present in MySQL, use MySQL. user table. The syntax is as follows to check how many users are present. Now you can check and drop the user if it exist.
$query = mysql_query("SELECT username FROM Users WHERE username=$username", $con); if (mysql_num_rows($query) != 0) { echo "Username already exists"; } else { ... }
This worked for me:
GRANT USAGE ON *.* TO 'username'@'localhost'; DROP USER 'username'@'localhost';
This creates the user if it doesn't already exist (and grants it a harmless privilege), then deletes it either way. Found solution here: http://bugs.mysql.com/bug.php?id=19166
Updates: @Hao recommends adding IDENTIFIED BY
; @andreb (in comments) suggests disabling NO_AUTO_CREATE_USER
.
Since MySQL 5.7 you can do a DROP USER IF EXISTS test
More info: http://dev.mysql.com/doc/refman/5.7/en/drop-user.html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With