Från dokumentationen:
Om du anger DEFINER-satsen kan du inte ställa in värdet till någon annan användare än din egen om du inte har SUPER-behörigheten. Dessa regler bestämmer de lagliga användarvärdena för DEFINER:
- *Om du inte har SUPER-behörigheten är det enda lagliga användarvärdet ditt eget konto, antingen bokstavligt angivet eller genom att använda CURRENT_USER. Du kan inte ställa in definieraren på något annat konto.*
- Om du har SUPER-behörigheten kan du ange vilket syntaktiskt lagligt kontonamn som helst. Om kontot inte faktiskt existerar genereras en varning.
Kontrollera ditt MySQL-konto, det är inte byname
@localhost
.
Lösningar:
- Skapa ny vy med DEFINER-klausul med ett konto som beviljats med SUPER-behörighet.
- Använd inte DEFINER-satsen i CREATE VIEW, i det här fallet kommer MySQL att skapa vyn DEFINER =CURRENT_USER.