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

MySQL स्ट्रिक्ट मोड को डिसेबल कैसे करें

MySQL, और MariaDB, सख्त मोड नियंत्रित करता है कि डेटा बदलने वाले प्रश्नों में अमान्य या अनुपलब्ध मानों को कैसे नियंत्रित किया जाता है; इसमें INSERT, UPDATE और CREATE TABLE स्टेटमेंट शामिल हैं। MySQL सख्त मोड सक्षम होने के साथ, जो कि डिफ़ॉल्ट स्थिति है, अमान्य या अनुपलब्ध डेटा क्वेरी को संसाधित करने का प्रयास करते समय चेतावनियां या त्रुटियां पैदा कर सकता है।

जब सख्त मोड अक्षम हो जाता है तो उसी क्वेरी में अमान्य, या अनुपलब्ध, मान समायोजित हो जाएंगे और एक साधारण चेतावनी उत्पन्न होगी। यह पसंदीदा परिणाम की तरह लग सकता है, हालांकि सख्त मोड अक्षम होने पर कुछ क्रियाएं अप्रत्याशित परिणाम दे सकती हैं; उदाहरण के लिए, जब डाला जा रहा मान अधिकतम वर्ण सीमा से अधिक हो जाता है तो इसे सीमा में फिट करने के लिए छोटा कर दिया जाएगा।

MySQL के सख्त मोड को अक्षम करने के कई कारण हो सकते हैं, हालांकि सबसे आम है जब कोई सर्वर WHMCS चला रहा हो - यह उस टूल की एक आवश्यकता है।

उड़ान पूर्व जांच

  • ये निर्देश विशेष रूप से cPanel के साथ प्रबंधित लिक्विड वेब सर्वर पर MySQL सख्त मोड को अक्षम करने के लिए हैं।
  • सर्वर या तो MySQL 5.6/5.7 या MariaDB 10.x पर चलना चाहिए
  • SSH के माध्यम से कमांड लाइन और रूट लेवल एक्सेस इस ट्यूटोरियल को फॉलो करने के लिए आवश्यक होगा।

चरण #1:बैकअप बनाएं, हमेशा!

जब भी किसी सर्वर पर फ़ाइलों को संशोधित किया जाता है, तो पहले से किसी न किसी रूप में बैकअप लेना हमेशा सबसे अच्छा अभ्यास होता है। यह सुनिश्चित करता है कि कुछ गड़बड़ होने पर आपके पास परिवर्तनों को वापस लाने का एक तरीका है; यह फायदेमंद भी है क्योंकि यह ट्रैक करने में मदद करता है कि कब और क्या परिवर्तन किए गए थे।

रूट उपयोगकर्ता के साथ SSH में लॉग इन करते समय, निम्न कार्य करें:

cp -a /usr/my.cnf{,.strict.bak}
cp -a /etc/my.cnf{,.strict.bak}

फ़ाइल की मूल निर्देशिका में बैकअप प्रतिलिपि बनाने के लिए उपरोक्त आदेश 'BASH ब्रेस विस्तार' का उपयोग करता है।

चरण #2:MySQL स्ट्रिक्ट मोड अक्षम करें

सर्वर और वर्तमान कॉन्फ़िगरेशन के आधार पर आपको सर्वर पर निम्न फ़ाइलों में से एक या दोनों को संपादित करने की आवश्यकता हो सकती है। आम तौर पर, प्रासंगिक कॉन्फ़िगरेशन लाइनें उनमें से केवल एक में होती हैं, हालांकि, यह बिना किसी समस्या के किसी एक में हो सकती है; इसलिए आम तौर पर दोनों की जांच करना सबसे अच्छा होता है।

फ़ाइलों को संपादित करने के लिए, आप फ़ाइल को अपने पसंदीदा कमांड लाइन संपादक के साथ खोलेंगे। इस उदाहरण में, हम 'विम' का उपयोग करते हैं।

vim /usr/my.cnf
vim /etc/my.cnf

विम में, आप टेक्स्ट इंसर्शन मोड में प्रवेश करने के लिए "ए" या "आई" दबा सकते हैं; अपने कीबोर्ड पर एस्केप कुंजी (Esc) दबाने पर आप कमांड मोड पर लौट आते हैं। विम के साथ फाइलों को संपादित करने पर एक पुनश्चर्या के लिए, हमारा नया उपयोगकर्ता ट्यूटोरियल देखें:विम टेक्स्ट एडिटर का अवलोकन।

ऊपर दी गई प्रत्येक फ़ाइल में आप निम्न सामग्री वाली एक पंक्ति की तलाश करेंगे:

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

यदि आपको उपरोक्त के समान एक पंक्ति मिलती है जो `sql_mode` चर सेट कर रही है तो आपको MySQL सख्त मोड को अक्षम करने के लिए इसे निम्न पंक्ति से बदलना होगा।

sql_mode=""

एक बार यह समायोजन हो जाने के बाद, या आपने पुष्टि कर दी है कि फ़ाइल को समायोजित करने की आवश्यकता नहीं है, तो आप फ़ाइल को सहेजेंगे और बंद कर देंगे।

चरण #3:MySQL सेवा को पुनरारंभ करें

अंत में, इन परिवर्तनों को प्रभावी बनाने के लिए आपको MySQL सेवा को पुनरारंभ करना होगा क्योंकि यह केवल कॉन्फ़िगरेशन फ़ाइलों को पढ़ेगा जब यह प्रारंभ में लोड हो जाएगा। MySQL को नई कॉन्फ़िगरेशन फ़ाइलों का उपयोग करने के लिए बाध्य करने के लिए आप निम्न कार्य करेंगे:

CentOS 7 सर्वर के लिए:
systemctl restart mysql

CentOS 6 और पूर्व के लिए:
/etc/init.d/mysql restart

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

यह सत्यापित करने के लिए कि प्रक्रिया ठीक से पूरी हुई थी, आप निम्नलिखित चला सकते हैं:

mysql -e "SELECT @@sql_mode;"

आउटपुट निम्न के जैसा दिख सकता है:

+--------------------------------------------+
| @@sql_mode
+--------------------------------------------+
| NO_AUTO_CREATE_USER
+--------------------------------------------+

यदि आपके कोई प्रश्न हैं या आप स्वयं इन परिवर्तनों को करने में सहज नहीं हैं, तो कृपया बेझिझक Heroic Support® से संपर्क करें।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL में एक टेबल कैसे बनाएं - पोस्टग्रेज और MySQL उदाहरण क्वेरी

  2. MySQL डेटटाइम स्टैम्प को जावास्क्रिप्ट के दिनांक प्रारूप में बदलें

  3. MySQL डेटाबेस की प्रत्येक तालिका में फ़ील्ड में टेक्स्ट खोजें

  4. MySQL:त्रुटि कोड:1118 पंक्ति का आकार बहुत बड़ा (> 8126)। कुछ कॉलम को टेक्स्ट या बीएलओबी में बदलना

  5. MySQL में MAX () बनाम ग्रेटेस्ट ():क्या अंतर है?