De la documentación:
Si especifica la cláusula DEFINER, no puede establecer el valor para ningún usuario que no sea el suyo a menos que tenga el privilegio SUPER. Estas reglas determinan los valores de usuario DEFINER legales:
- *Si no tiene el privilegio SUPER, el único valor de usuario legal es su propia cuenta, ya sea especificada literalmente o usando CURRENT_USER. No puede establecer el definidor en alguna otra cuenta.*
- Si tiene el privilegio SUPER, puede especificar cualquier nombre de cuenta sintácticamente legal. Si la cuenta no existe realmente, se genera una advertencia.
Verifique su cuenta de MySQL, no es byname
@localhost
.
Soluciones:
- Cree una nueva vista con la cláusula DEFINER usando la cuenta que otorgó el privilegio SUPER.
- No use la cláusula DEFINER en CREATE VIEW, en este caso MySQL creará la vista DEFINER =CURRENT_USER.