मैसूर 5.7 सख्त मोड को वापस लाने का सही तरीका क्या है जो 5.6 में था?


10

मैंने अपने सर्वर को उबंटू 16 में अपग्रेड किया है जिसमें मैसूर 5.7 शामिल है और डिफ़ॉल्ट रूप से, स्ट्रिक्ट मोड सक्षम है (हालांकि किसी भी कॉन्फ़िगरेशन फ़ाइल में इसके लिए कोई प्रविष्टि नहीं है)।

हम डेटाबेस आयात करने वाले मुद्दे रख रहे हैं जो mysql 5.6 और पहले के उत्पादन में थे, और यह सख्त मोड के कारण है। डिफ़ॉल्ट रूप से, यहां वह सक्षम है:

STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY

मैं mysql 5.7 को ठीक उसी तरह से काम करने के लिए कैसे कॉन्फ़िगर कर सकता हूं जैसा उसने 5.6 में किया था या इसलिए कि 5.6 से डेटाबेस 5.7 के साथ संगत हैं?


इस उत्तर का प्रयास करें: stackoverflow.com/a/34426883/534883 घटना हालांकि यह OSX के लिए है, इसने उबंटू पर मेरे लिए काम किया।
गड्ढे

जवाबों:


34

सख्त SQL मोड को अक्षम करने के लिए, SSH को अपने सर्वर में rootइस फाइल को बनाएं और बनाएं:

/etc/mysql/conf.d/disable_strict_mode.cnf

फ़ाइल खोलें और इन दो पंक्तियों को दर्ज करें:

[mysqld]
sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

इस आदेश के साथ MySQL को पुनरारंभ करें:

sudo service mysql restart

यह परिवर्तन दो SQL मोड सेटिंग्स को अक्षम करता है, STRICT_TRANS_TABLESऔर ONLY_FULL_GROUP_BY, जो MySQL 5.7 में जोड़े गए थे और कुछ पुराने अनुप्रयोगों के लिए समस्याएँ पैदा करते हैं।

सख्त SQL मोड की पुष्टि अक्षम है

आप इस आदेश को चलाकर सख्त SQL मोड को अक्षम कर सकते हैं root:

 sudo mysql -i -BN -e 'SELECT @@sql_mode' | grep -E 'ONLY_FULL_GROUP_BY|STRICT_TRANS_TABLES'

यदि सख्त मोड अक्षम है, तो आप उस कमांड से कोई आउटपुट नहीं देखेंगे।

यदि सख्त मोड को अक्षम करने से आपके लिए कोई समस्या होती है, तो आप उस फ़ाइल को हटाकर और फिर से MySQL को पुनः आरंभ करके इसे सक्षम कर सकते हैं।

स्रोत: MySQL 5.7 में सख्त SQL मोड को कैसे अक्षम करें


2
यह एक सही उत्तर है, और इसे स्वीकार किया जाना चाहिए।
बुद्धजेवा

कमांड mysql कमांड क्यों चल रहा है mysql: [ERROR] Found option without preceding group in config file /etc/mysql/conf.d/disable_strict_mode.cnf at line 1!?
अभिषेक सैनी

1
@AbhishekSaini, इस और इस पर एक नज़र ।
बिलाल

1
यह एक उत्तर है। कृपया इसे उत्तर के रूप में देखें।
लसिथ बनारगामा

0

बिना sql_modeमें सेट ।/etc/mysql/mysql.conf.d/mysqld.cnfSTRICT_TRANS_TABLES

के तहत जोड़ें [mysqld]:

sql_mode = NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.