DROP USER
DROP USER 'user'@'host'
Use this statement to delete a user account for the MySQL server.
As of version 5.0.2 of MySQL, this statement will delete the user
account and its privileges from all grant tables. The username is
given within quotes, followed by the at sign (@)
and the host IP address or hostname within quotes. This statement
requires a CREATE USER privilege or
DELETE privilege for the mysql
database, which contains user account information and privileges.
Dropping a user account does not affect current sessions for the user
account. It will take effect when any sessions opened by the user
terminate. Use the KILL statement (explained
in Chapter 7) to terminate an open client
session for a user that has been dropped.
Some users may have more than one user account (i.e., user and
host combinations). You should check the server’s
mysql.user table to be sure:
SELECT User,Host FROM mysql.user WHERE User LIKE 'paola'; +-------+--------------+ | User | Host | +-------+--------------+ | paola | localhost | | paola | caporale.com | +-------+--------------+ DROP USER 'paola'@'localhost', 'paola'@'caporale.com';
Prior to version 5.0.2 of MySQL, the DROP
USER statement won’t delete a user that has any privileges
set to 'Y'. To eliminate the user account’s
privileges, issue the REVOKE statement before
using DROP USER:
REVOKE ALL ON *.* FROM 'paola'@'localhost'; DROP USER 'paola'@'localhost';
The ALL option is used to ensure revocation of all privileges. The
*.* covers all tables in all databases. Prior to
version 4.1.1 of MySQL, you would have to issue the following instead
of a DROP USER statement:
DELETE FROM mysql.user WHERE User='paola' AND Host='localhost'; FLUSH PRIVILEGES;
Notice that the FLUSH PRIVILEGES statement
is necessary for the preceding DELETE statement to
take effect immediately. It’s not necessary after the DROP
USER statement, though.