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

MySql संग्रहीत कार्यविधि को चलाने के लिए न्यूनतम पहुँच स्तर

यह कनेक्टर/नेट में एक बग प्रतीत होता है, जो bug 75301 के समान है। लेकिन थोड़ा अलग। जब यह प्रक्रिया के लिए पैरामीटर मेटाडेटा निर्धारित करने का प्रयास कर रहा है, तो यह पहले एक MySqlSchemaCollection बनाता है नामित Procedures सभी . के साथ प्रक्रिया के बारे में मेटाडेटा। (यह SELECT * FROM information_schema.routines WHERE 1=1 AND routine_schema LIKE 'Spike' AND routine_name LIKE 'TestAccess' क्वेरी जो आप अपने लॉग में देखते हैं।)

Spike उपयोगकर्ता खाते को ROUTINE_DEFINITION पढ़ने की अनुमति नहीं है कॉलम, तो यह NULL है . कनेक्टर/नेट उम्मीद करता है कि यह फ़ील्ड गैर-नल हो और एक SqlNullValueException फेंकता है अपवाद इसे पढ़ने की कोशिश कर रहा है।

दो समाधान हैं:

1) पहला, जो आपने खोजा है, वह है CheckParameters=False . सेट करना आपके कनेक्शन स्ट्रिंग में। यह संग्रहीत प्रक्रिया मेटाडेटा (दुर्घटना से बचने) की पुनर्प्राप्ति को अक्षम कर देगा, लेकिन यदि आपको ऑर्डर और प्रकार के पैरामीटर बिल्कुल सही नहीं मिलते हैं तो अन्य संग्रहीत प्रक्रियाओं को कॉल करने में कठिन-से-डीबग समस्याएं हो सकती हैं। (कनेक्टर/नेट अब मेटाडेटा का उपयोग करके उन्हें आपके लिए मैप नहीं कर सकता।)

2) किसी भिन्न ADO.NET MySQL लाइब्रेरी में स्विच करें जिसमें यह बग न हो:MySqlConnector NuGet पर . यह कनेक्टर/नेट के साथ अत्यधिक संगत है, तेजी से प्रदर्शन करता है, और बहुत सारे ज्ञात मुद्दे



  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 छँटाई तालिका

  2. वाक्पटु समूह Laravel 5.3 में मान्य SQL क्वेरी के साथ SQLSTATE[42000] बनायें

  3. MySQL ऑटो इंक्रीमेंट प्राइमरी की 10 . से बढ़ जाती है

  4. PHP में MySQL परिणामों के माध्यम से पुनरावृति करते हुए भविष्य के डुप्लिकेट मानों का पता लगाएं

  5. नोड.जेएस में काम नहीं कर रहा चुनें