Da documentação:
Se você especificar a cláusula DEFINER, não poderá definir o valor para nenhum usuário além do seu, a menos que tenha o privilégio SUPER. Essas regras determinam os valores legais do usuário DEFINER:
- *Se você não tiver o privilégio SUPER, o único valor de usuário legal é sua própria conta, especificada literalmente ou usando CURRENT_USER. Você não pode definir o definidor para outra conta.*
- Se você tiver o privilégio SUPER, poderá especificar qualquer nome de conta sintaticamente legal. Se a conta não existir, um aviso será gerado.
Verifique sua conta MySQL, não é
byname
@localhost
. Soluções:
- Crie uma nova visualização com a cláusula DEFINER usando a conta que concedeu o privilégio SUPER.
- Não use a cláusula DEFINER em CREATE VIEW, neste caso o MySQL criará a view DEFINER =CURRENT_USER.