Fra dokumentationen:
Hvis du angiver DEFINER-sætningen, kan du ikke indstille værdien til andre brugere end din egen, medmindre du har SUPER-privilegiet. Disse regler bestemmer de juridiske DEFINER-brugerværdier:
- *Hvis du ikke har SUPER-privilegiet, er den eneste lovlige brugerværdi din egen konto, enten angivet bogstaveligt eller ved at bruge CURRENT_USER. Du kan ikke indstille definereren til en anden konto.*
- Hvis du har SUPER-privilegiet, kan du angive ethvert syntaktisk lovligt kontonavn. Hvis kontoen faktisk ikke eksisterer, genereres en advarsel.
Tjek din MySQL-konto, den er ikke byname
@localhost
.
Løsninger:
- Opret ny visning med DEFINER-klausul ved hjælp af konto, der er givet med SUPER-privilegium.
- Brug ikke DEFINER-sætning i CREATE VIEW, i dette tilfælde vil MySQL oprette visning DEFINER =CURRENT_USER.