usuarios - ver privilegios usuario mysql
Error Mysql: el usuario especificado como definidor(''mysql.infoschema''@''localhost'') no existe ''al intentar volcar espacios de tabla (3)
En mi caso, tal error se debió a que cambié el host del usuario dba de% a localhost para fortalecer la seguridad.
Utilicé "abcdba" con el derecho DDL para crear el esquema de db, y usé "abc" con el derecho CURD para que el servicio web usara la base de datos. Después del cambio, las operaciones de lectura estaban bien, pero las operaciones de escritura fallaron con el mensaje de error en el OP.
Eliminar el privilegio o reiniciar el servidor no solucionó el problema. Entonces cambié al host del usuario dba de nuevo a%. Entonces las cosas se han vuelto normales otra vez.
Al parecer, a mysql no le gustan los cambios de host del usuario dba, y las bases de datos existentes creadas por ese usuario dba tendrán problemas si se cambia el host del usuario dba.
Esencialmente, cambiar el host del usuario dba en realidad está eliminando al usuario abcdba @% y creando un nuevo usuario abcdba @ localhost. Aquí vino el mensaje de error, ya que abcdba @% y abcdba @ localhost son 2 nombres de usuario completamente calificados.
Después de actualizar MySQL 5.7 a MySQL 8.0, volví a iniciar MySQL y obtuve un error: el usuario especificado como definidor (''mysql.infoschema''@''localhost'') no existe ''al intentar volcar espacios de tablas. No entiendo por qué se produce este problema. Y quiero saber como resolverlo.
Puede ocurrir después de un tiempo después de configurar su nuevo sistema.
Como una solución sugerida, solo intente con Windows
1) abrir cmd.exe
como administrador
2) ejecute mysql_upgrade.exe -uyour_user_name -pyour_password
mysql_upgrade.exe
puede ubicarse en
C:/Program Files/MySQL/MySQL Server 8.0/bin
Luego ejecute lo siguiente para ver si el usuario de infoschema ha aparecido.
select user, host from mysql.user;
Tuve el mismo error cuando bajé accidentalmente mi versión de MySQL de 8 a 5.7. En el primer inicio, la versión anterior rompió algo, de modo que la versión 8 mostraba el error anterior. En mi caso, tuve que ingresar al contenedor de la ventana acoplable donde MySQL se ejecutaba primero
docker exec -it mysql bash
Entonces básicamente seguí los pasos here
mysql -u root -p
mysql> SET GLOBAL innodb_fast_shutdown = 1;
mysql_upgrade -u root -p
Esto tomó algunos minutos pero luego todo volvió a funcionar.