Te recomendamos que revises esta respuesta en un entorno controlado antes de pasarlo a producción, saludos.
Solución:
Fue porque creé al usuario usando el comando:
CREATE USER 'user'@'%' IDENTIFIED BY 'passwd';
y lo estaba eliminando usando:
drop user 'user'@'localhost';
y debería haber usado este comando:
drop user 'user'@'%';
Es probable que el usuario que intenta eliminar no exista. Puede confirmar (o no) si este es el caso ejecutando:
select user,host
from mysql.user
where user = '';
Si el usuario existe, intente ejecutar:
flush privileges;
drop user 'user'@'localhost';
Otra cosa que debe verificar es asegurarse de que haya iniciado sesión como root
usuario
Si todo lo demás falla, puede eliminar manualmente al usuario de esta manera:
delete from mysql.user
where user=''
and host = 'localhost';
flush privileges;
Cómo resolver un problema como este:
mysql> drop user 'q10'@'localhost';
ERROR 1396 (HY000): Operation DROP USER failed for 'q10'@'localhost'
Primero: debe verificar qué host de su usuario, como:
mysql> select host,user from user;
+-----------+------+
| host | user |
+-----------+------+
| % | q10 |
| localhost | root |
| localhost | sy |
| localhost | tom |
+-----------+------+
si elimino al usuario ‘q10’, el comando es:
mysql> drop user 'q10'@'%';
Query OK, 0 rows affected (0.00 sec)
Y si dejo caer al usuario ‘tom’, el comando es el siguiente:
mysql> drop user 'tom'@'localhost';
Query OK, 0 rows affected (0.00 sec)
Calificaciones y reseñas
Finalizando este artículo puedes encontrar las notas de otros sys admins, tú igualmente eres capaz mostrar el tuyo si te gusta.