Dari dokumentasi:
Jika Anda menentukan klausa DEFINER, Anda tidak dapat menyetel nilainya ke pengguna mana pun kecuali milik Anda sendiri kecuali Anda memiliki hak istimewa SUPER. Aturan ini menentukan nilai pengguna DEFINER yang sah:
- *Jika Anda tidak memiliki hak istimewa SUPER, satu-satunya nilai pengguna yang sah adalah akun Anda sendiri, baik ditentukan secara harfiah atau dengan menggunakan CURRENT_USER. Anda tidak dapat menyetel penentu ke akun lain.*
- Jika Anda memiliki hak istimewa SUPER, Anda dapat menentukan nama akun yang legal secara sintaksis. Jika akun tersebut tidak benar-benar ada, peringatan akan dibuat.
Periksa akun MySQL Anda, bukan byname
@localhost
.
Solusi:
- Buat tampilan baru dengan klausa DEFINER menggunakan akun yang diberikan hak istimewa SUPER.
- Jangan gunakan klausa DEFINER dalam CREATE VIEW, dalam hal ini MySQL akan membuat tampilan DEFINER =CURRENT_USER.