Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL निश्चित समस्याओं का निवारण कैसे करें

यह आलेख चर्चा करता है कि DEFINER . के दौरान उत्पन्न होने वाली समस्याओं का निवारण कैसे करें विशेषता का उपयोग MySQL संग्रहीत वस्तुओं (दृश्य, ट्रिगर, फ़ंक्शन और संग्रहीत कार्यविधियाँ) के साथ किया जाता है।

समस्या

आपको MySQL संग्रहीत ऑब्जेक्ट (दृश्य, ट्रिगर, फ़ंक्शन और संग्रहीत कार्यविधियाँ) देखने या चलाने में समस्याएँ आ सकती हैं। उदाहरण के लिए, आपको phpMyAdmin में निम्न त्रुटि संदेश प्राप्त हो सकता है:

Error in processing request: No routine with name 'example' found in database 'example_db'. You might be lacking the necessary privileges to edit this routine.

वैकल्पिक रूप से, आप वेबसाइट संचालन के दौरान यादृच्छिक त्रुटियों का अनुभव कर सकते हैं, या डेटाबेस कार्यक्षमता का नुकसान हो सकता है।

कारण

परिभाषित करने वाला विशेषता का उपयोग एक MySQL उपयोगकर्ता खाते को निर्दिष्ट करने के लिए किया जाता है जो किसी विशेष संग्रहीत वस्तु तक पहुंच सकता है। हालाँकि, समस्याएँ तब उत्पन्न हो सकती हैं जब MySQL उपयोगकर्ता एक DEFINER . में खाता है विशेषता वर्तमान में लॉग-इन MySQL उपयोगकर्ता से मेल नहीं खाती। उदाहरण के लिए, यह cPanel के phpMyAdmin का उपयोग करते समय हो सकता है, जो हमेशा प्राथमिक खाते (cPanel) उपयोगकर्ता के रूप में लॉग इन करता है, न कि उपयोगकर्ता द्वारा परिभाषित डेटाबेस उपयोगकर्ता के रूप में।

इसी तरह, यह समस्या साइट माइग्रेशन के बाद हो सकती है यदि DEFINER डेटाबेस में विशेषताएँ नए होस्टिंग परिवेश के डेटाबेस उपयोगकर्ताओं के साथ अद्यतन नहीं होती हैं।

संकल्प

इस समस्या को हल करने के लिए, आप डेटाबेस में डेटाबेस उपयोगकर्ता के रूप में लॉग इन करने का प्रयास कर सकते हैं जो DEFINER में संदर्भित है गुण। (सही डेटाबेस उपयोगकर्ता को निर्धारित करने के लिए, आपको डेटाबेस को डंप करने और DEFINER की जांच करने की आवश्यकता हो सकती है। विशेषताएँ।) ऐसे कई तरीके हैं जिनसे आप विभिन्न डेटाबेस उपयोगकर्ताओं के रूप में लॉग इन कर सकते हैं:

विधि #1:MySQL क्लाइंट एप्लिकेशन का उपयोग करें

डेटाबेस में सही डेटाबेस उपयोगकर्ता के रूप में लॉग इन करने के लिए आप MySQL क्लाइंट एप्लिकेशन, जैसे MySQL वर्कबेंच का उपयोग कर सकते हैं। फिर आप सही पहचान का उपयोग करके संग्रहीत वस्तुओं को संपादित और चलाने में सक्षम होंगे। अपने डेटाबेस से कनेक्ट करने के लिए MySQL क्लाइंट एप्लिकेशन का उपयोग कैसे करें, इस बारे में जानकारी के लिए, कृपया यह लेख देखें।

विधि #2:'mysql' कमांड लाइन प्रोग्राम का उपयोग करें

वैकल्पिक रूप से, आप mysql . का उपयोग कर सकते हैं सही डेटाबेस उपयोगकर्ता के रूप में डेटाबेस में लॉग इन करने के लिए कमांड-लाइन प्रोग्राम। फिर आप सही पहचान का उपयोग करके संग्रहीत वस्तुओं को संपादित और चलाने में सक्षम होंगे। mysql . का उपयोग करने के तरीके के बारे में जानकारी के लिए कमांड लाइन कार्यक्रम, कृपया इस लेख को देखें।

विधि #3:phpMyAdmin के कस्टम इंस्टाल का उपयोग करें

यदि आप MySQL क्लाइंट एप्लिकेशन या कमांड लाइन का उपयोग नहीं करना चाहते हैं, तो आप अपने होस्टिंग खाते पर एक स्टैंडअलोन phpMyAdmin इंस्टॉलेशन बना सकते हैं। यह कस्टम इंस्टॉलेशन आपको प्राथमिक खाते (cPanel) उपयोगकर्ता के बजाय डेटाबेस में सही डेटाबेस उपयोगकर्ता के रूप में लॉग इन करने में सक्षम बनाता है। कस्टम phpMyAdmin इंस्टालेशन बनाने के तरीके के बारे में जानकारी के लिए, कृपया यह लेख देखें।

कभी-कभी, आप डेटाबेस में लॉग इन नहीं कर सकते क्योंकि डेटाबेस उपयोगकर्ता DEFINER . में संदर्भित होता है गुण। उदाहरण के लिए, किसी अन्य होस्टिंग प्रदाता से माइग्रेट की गई साइट में अलग-अलग MySQL नामकरण परंपराएं हो सकती हैं, और सही नाम के साथ डेटाबेस उपयोगकर्ता बनाना असंभव हो सकता है। इस मामले में, आपको निम्न कार्य करने होंगे:

  1. संपूर्ण डेटाबेस को एक फ़ाइल में डंप करें। इसे कैसे करें, इस बारे में जानकारी के लिए कृपया यह लेख देखें।
  2. DEFINER को मैन्युअल रूप से अपडेट करने के लिए अपने पसंदीदा टेक्स्ट एडिटर का उपयोग करें एक डेटाबेस उपयोगकर्ता को संदर्भित करने के लिए विशेषताएँ जिसे आप नियंत्रित करते हैं।
  3. संशोधित डेटाबेस को अपने खाते में आयात करें। इसे कैसे करें, इस बारे में जानकारी के लिए कृपया यह लेख देखें।
  4. नए डेटाबेस का परीक्षण करें। अब आप सही पहचान का उपयोग करके संग्रहीत वस्तुओं को संपादित करने और चलाने में सक्षम होना चाहिए।

अधिक जानकारी

निश्चित करने वालों के बारे में अधिक जानकारी के लिए, कृपया देखें https://dev.mysql.com/doc/refman/8.0/en/stored-objects-security.html।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL और MariaDB के कई कार्यों का उपयोग करना सीखें - भाग 2

  2. MySQL में अपरकेस अक्षरों वाली पंक्तियों को खोजने के 3 तरीके

  3. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:संचार लिंक विफलता

  4. CentOS 5 पर MySQL रिलेशनल डेटाबेस का उपयोग करें

  5. MySQL प्रतिकृति समस्या निवारण:भाग एक