दस्तावेज़ीकरण से:
यदि आप DEFINER क्लॉज निर्दिष्ट करते हैं, तो आप किसी भी उपयोगकर्ता के लिए मान सेट नहीं कर सकते हैं, लेकिन जब तक आपके पास सुपर विशेषाधिकार न हो। ये नियम कानूनी DEFINER उपयोगकर्ता मान निर्धारित करते हैं:
- *यदि आपके पास सुपर विशेषाधिकार नहीं है, तो केवल कानूनी उपयोगकर्ता मान आपका अपना खाता है, या तो शाब्दिक रूप से या CURRENT_USER का उपयोग करके निर्दिष्ट किया गया है। आप किसी अन्य खाते के लिए निश्चित सेट नहीं कर सकते।*
- यदि आपके पास सुपर विशेषाधिकार है, तो आप कोई भी वाक्यात्मक रूप से कानूनी खाता नाम निर्दिष्ट कर सकते हैं। यदि खाता वास्तव में मौजूद नहीं है, तो एक चेतावनी उत्पन्न होती है।
अपने MySQL खाते की जाँच करें, यह byname
नहीं है @localhost
।
समाधान:
- सुपर विशेषाधिकार के साथ दिए गए खाते का उपयोग करके DEFINER क्लॉज के साथ नया दृश्य बनाएं।
- क्रिएट व्यू में DEFINER क्लॉज का इस्तेमाल न करें, इस स्थिति में MySQL व्यू DEFINER =CURRENT_USER बनाएगा।