ドキュメントから:
DEFINER句を指定した場合、SUPER権限がない限り、自分以外のユーザーに値を設定することはできません。これらのルールは、正当なDEFINERユーザー値を決定します。
- * SUPER権限がない場合、有効なユーザー値は、文字通りまたはCURRENT_USERを使用して指定された自分のアカウントのみです。定義者を他のアカウントに設定することはできません。*
- SUPER権限をお持ちの場合は、構文的に有効なアカウント名を指定できます。アカウントが実際に存在しない場合は、警告が生成されます。
MySQLアカウントを確認してください。byname
ではありません @ localhost
。
ソリューション:
- SUPER権限で付与されたアカウントを使用して、DEFINER句で新しいビューを作成します。
- CREATE VIEWでDEFINER句を使用しないでください。この場合、MySQLはビューDEFINER=CURRENT_USERを作成します。