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

SQLSTATE [42000]:सिंटैक्स त्रुटि या पहुँच उल्लंघन:1055 एक्सप्रेशन #3 का चयन सूची समूह द्वारा खंड में नहीं है और इसमें गैर-समेकित है

भागो:

sudo mysql -u root -p
mysql> SELECT @@global.sql_mode;

(फिर वैकल्पिक रूप से आउटपुट को अपने नोट्स में कहीं और कॉपी करें यदि आप बाद में उन मूल सेटिंग्स पर वापस जाना चाहते हैं।)

और एसक्यूएल मोड बदलें ए> आपके MySQL सर्वर इंस्टेंस के लिए:

mysql> SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

(यदि आप कभी भी वापस रोल करना चाहते हैं, तो आप mysql> SET GLOBAL sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'; जैसे कुछ चला सकते हैं। आपके द्वारा सहेजे गए मान का उपयोग करके।)

एक अधिक स्थायी तरीका (जो MySQL के पुनरारंभ होने से बच जाएगा) MySQL कॉन्फ़िगरेशन का उपयोग करेगा। /etc/mysql/my.cnf पर जाएं (या आपको sudo vim /etc/mysql/mysql.conf.d/mysql.cnf चलाने की आवश्यकता हो सकती है ):

  • [mysqld] . के लिए एक अनुभाग जोड़ें और इसके ठीक नीचे कथन जोड़ेंsql_mode = "" या कुछ इस तरह sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"

  • MySQL सेवा को पुनरारंभ करें:

     sudo systemctl restart mysql
    

(या sudo service mysql restart )

यह भी देखें https://dba.stackexchange.com/a/113153/18098



  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. MySQL समान कॉलम मान वाली डुप्लिकेट पंक्तियों को हटा दें

  3. MySQL में LOCATE () फ़ंक्शन कैसे काम करता है

  4. MySQL में बल्क इंसर्ट समस्या

  5. MySQL में संग्रहीत कार्यविधि को कैसे शेड्यूल करें