ERROR 1396 (HY000): Operation CREATE USER failed

MySQL puede ser un poco delicado al momento de manipular usuarios. Al intentar crear un usuario, el cual yo sabía que existió en algún momento, me devolvió el error 1396

mysql> CREATE USER 'foo'@'localhost' IDENTIFIED BY 'lacontraseña';
ERROR 1396 (HY000): Operation CREATE USER failed for 'foo'@'localhost'

Entonces procedí a verificar si existía en la tabla mysql.user:

mysql> select user,host from mysql.user where user = 'foo';
Empty set (0.00 sec)

Lo anterior sucede porque el usuario todavía existe en la tabla mysql.db , lo cual se puede solucionar de la siguiente manera:

1. Utilizando comandos mysql de manejo de usuarios:

REVOKE priv1,priv2,priv3,etc… FROM ‘foo’@’localhost’;

DROP USER 'foo'@'localhost'; 

2. Eliminandolo directamente de la tabla mysql.db

delete from mysql.db where user=foo

Eliminando logs binarios del Mysql : mysql-bin.000 …

Antes de realizar lo que sigue, es recomendable hacer un respaldo del directorio adonde se encuentren los logs binarios de mysql.

En una instalación básica de mysql, no se requieren los logs binarios de MySQL, debido a que estos son utilizados principalmente en las siguientes situaciones:

  • Replicación
  • Algunas operaciones de recuperación de información
En mi caso, deseaba eliminarlos, ya que estaban consumiendo varios GBs de espacio en disco, utilizando los siguientes comandos:
mysql> FLUSH LOGS;
mysql> RESET MASTER;
El primer comando cierra y vuelve a abrir todos los archivos de logs , el segundo borra todos los logs binarios listados en el archivo índice (normalmente  mysql-bin.index ) , resetea dicho archivo y crea un nuevo archivo de log binario.
Para realizar lo anterior no es necesario reiniciar la instancia.

Powered by WordPress with GimpStyle Theme design by Horacio Bella.
Entries and comments feeds. Valid XHTML and CSS.