Publicidad

Error en MySql - The user specified as a definer USER does not exist when using LOCK TABLES


Por Alex el 06/09/2023, Comentar el artículo

Comparte este artículo:      




Estos días intentando hacer un backup de una base de datos de MySql con mysqldump me daba el siguiente error ...


The user specified as a definer ('user'@'%') does not exist when using LOCK TABLES, lo que no era muy normal porque debería existir dicho usuario en la base de datos.

La cuestión es que no había forma de hacer backup con mysqldump porque me decia que no existia el usuario, bueno, pues la solución fue crearlo ejecutando las siguientes consultas en la consola de MySql

CREATE USER 'user'@'%' IDENTIFIED BY 'root';
GRANT ALL ON *.* TO 'user'@'%' IDENTIFIED BY 'root';
FLUSH PRIVILEGES;

Esto me funcionó en la versión 5.7 de MySql, quizás en la versión 8 estas sentencias difieran un poco, buscarlas, pero para solucionar el problema hay que crear el usuario que MySql nos pide.

Y si tenéis el entorno dockerizado las sentencias podéis ejecutarlas asi:

docker exec $(docker ps | grep '_db' | awk '{print $1}') mysql -u root -proot -e "CREATE USER 'user'@'%' IDENTIFIED BY 'root'";

donde _db es el nombre del container de MySql y después del parámetro -e entre comillas dobles ponéis la sentencia.

Y esto es todo, feliz programming
Saludos
Alex.
/


Si te ha gustado el artículo compartelo en:      




Añadir un comentarios:

Nombre:
Email: (no se publica el email)




SIGUENOS EN

ARCHIVO

Publicidad

.