Từ tài liệu:
Nếu bạn chỉ định mệnh đề DEFINER, bạn không thể đặt giá trị cho bất kỳ người dùng nào trừ người dùng của riêng bạn trừ khi bạn có đặc quyền SUPER. Các quy tắc này xác định giá trị người dùng DEFINER hợp pháp:
- * Nếu bạn không có đặc quyền SUPER, giá trị người dùng hợp pháp duy nhất là tài khoản của chính bạn, được chỉ định theo nghĩa đen hoặc bằng cách sử dụng CURRENT_USER. Bạn không thể đặt trình xác định cho một số tài khoản khác. *
- Nếu bạn có SUPER đặc quyền, bạn có thể chỉ định bất kỳ tên tài khoản hợp pháp về mặt cú pháp nào. Nếu tài khoản không thực sự tồn tại, một cảnh báo sẽ được tạo.
Kiểm tra tài khoản MySQL của bạn, nó không phải là byname
@ localhost
.
Giải pháp:
- Tạo chế độ xem mới với điều khoản DEFINER bằng tài khoản được cấp SUPER đặc quyền.
- Không sử dụng mệnh đề DEFINER trong TẠO CHẾ ĐỘ XEM, trong trường hợp này MySQL sẽ tạo chế độ xem DEFINER =CURRENT_USER.