От документацията:
Ако посочите клаузата DEFINER, не можете да зададете стойността на който и да е потребител, освен на своя собствен, освен ако нямате привилегията SUPER. Тези правила определят законните потребителски стойности на DEFINER:
- *Ако нямате привилегията SUPER, единствената легална потребителска стойност е вашият собствен акаунт, посочен буквално или чрез използване на CURRENT_USER. Не можете да зададете дефинера на друг акаунт.*
- Ако имате привилегията СУПЕР, можете да посочите всяко синтактично законно име на акаунт. Ако акаунтът всъщност не съществува, се генерира предупреждение.
Проверете вашия MySQL акаунт, той не е byname
@localhost
.
Решения:
- Създайте нов изглед с клауза DEFINER, като използвате акаунт, предоставен с привилегия SUPER.
- Не използвайте клауза DEFINER в CREATE VIEW, в този случай MySQL ще създаде изглед DEFINER =CURRENT_USER.