Agregar un usuario a MySQL con 'nombre' @ '%' falla con ERROR 1396


9

Intenté agregar un nuevo usuario a MySQL usando

CREATE USER 'name'@'%' IDENTIFIED BY '...'

Sin embargo, falla con el siguiente error:

ERROR 1396 (HY000): Operation CREATE USER failed for 'name'@'%'

Agregar el usuario solo para localhost funciona bien:

CREATE USER 'name'@'localhost' IDENTIFIED BY '...'

No tengo idea de cuál podría ser el problema. Agradecería cualquier idea.

(Estoy usando mysql Ver 14.14 Distrib 5.1.66)


Me enfrenté al problema similar, mientras CREAR / DROP el usuario, verifiqué todas las tablas de otorgamiento de información del usuario, no pude encontrar ninguna información del usuario, intenté revocar todo el acceso y descarté al usuario, después de algún tiempo, la operación funciona, sin hacer cualquier cambio, escribí mi respuesta detallada aquí rathishkumar.in/2018/10/…
Rathish

Respuestas:


13

Según los documentos, si omite el @ 'nombre de host' (es decir, CREATE USER 'name') MySQL lo interpretará como si tuviera un @ '%'. El mensaje de error que proporcionó sugiere que ya hay un usuario 'nombre' @ '%' en el sistema:

mysql> CREATE USER 'name'@'%' IDENTIFIED BY 'test';
Query OK, 0 rows affected (0.04 sec)

mysql> CREATE USER 'name'@'%' IDENTIFIED BY 'test';
ERROR 1396 (HY000): Operation CREATE USER failed for 'name'@'%'
mysql> CREATE USER 'name' IDENTIFIED BY 'test';
ERROR 1396 (HY000): Operation CREATE USER failed for 'name'@'%'

Si elimina el usuario y aún recibe el mensaje, intente ejecutar FLUSH PRIVILEGES.

Consulte también esta pregunta SO para obtener información adicional.


1

Estaba enfrentando este mismo error al usar mysql: 5.7 docker image. El error principal fue intentar crear un rootusuario que existe por defecto. Más información: https://github.com/docker-library/mysql/issues/129

Como se indica en el enlace anterior, la solución fue NO establecer MYSQL_USERy MYSQL_PASSWORDen las variables de entorno al iniciar la imagen del acoplador.


¡Esto me ayudó mucho! No sabía por qué no podía conectarme a la base de datos en Docker y nunca sospeché que esa fuera la razón.
dingo_d
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.