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

एडब्ल्यूएस आरडीएस:मारियाडीबी 10.2 का उपयोग करते हुए "एसक्यूएलएसटीएटी [22001] - कॉलम के लिए डेटा बहुत लंबा"

हमारे पास बैकएंड के रूप में AWS RDS MariaDB के साथ एक PHP-एप्लिकेशन है।

पहले इस्तेमाल किए गए 10.0 संस्करण पर सब कुछ अच्छा था, लेकिन मारियाडीबी 10.2 में अपग्रेड करने के ठीक बाद - परीक्षणों के दौरान त्रुटियां मिलीं:

<ब्लॉकक्वॉट>

PDOException:SQLSTATE [22001]:स्ट्रिंग डेटा, सही काट दिया गया:1406 डेटा पंक्ति 1 में कॉलम 'नाम' के लिए बहुत लंबा है /data/projects/projectname/vendor/yiisoft/yii2/db/Command.php:1290

यहां पहला समाधान केवल VARCHAR . से कॉलम के प्रकार को बदलकर हो सकता है LONGTEXT . पर , उस तरह:

MariaDB [dbname]> ALTER TABLE table_name MODIFY column_name LONGTEXT;

लेकिन इस मौजूदा मामले में, यह सही तरीका नहीं होगा।

समाधान

sql_mode चेक करें 10.0 के साथ पुराने मारियाडीबी आरडीएस पर:

MariaDB [(none)]> select @@sql_mode;
+------------+
| @@sql_mode |
+------------+
|            |
+------------+

और नए पर, 10.2 के साथ:

MariaDB [dbname]> select @@sql_mode;
+-------------------------------------------------------------------------------------------+
| @@sql_mode                                                                                |
+-------------------------------------------------------------------------------------------+
| STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+-------------------------------------------------------------------------------------------+

और पैरामीटर समूह पर एक नज़र डालें जो नए RDS से जुड़ा हुआ है:

यहां हमें जो चाहिए वह यहां दिया गया है - STRICT_TRANS_TABLES :

<ब्लॉकक्वॉट>

यदि लेन-देन तालिका में दिए गए मान को सम्मिलित नहीं किया जा सकता है, तो कथन को निरस्त करें।

अब, डिफ़ॉल्ट “”STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION को अधिलेखित करने की आवश्यकता है NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION के लिए “:” मान :

MySQL कंसोल से दोबारा कनेक्ट करें, और दोबारा जांचें:

MariaDB [(none)]> select @@sql_mode;
+--------------------------------------------+
| @@sql_mode                                 |
+--------------------------------------------+
| NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+

हो गया।

समान पोस्ट

  • <छोटा>08/08/2019 AWS RDS:SQLSTATE[22001] - मारियाडीबी 10.2 में कॉलम के लिए डेटा बहुत लंबा है
  • <छोटा>05/14/2019 एडब्ल्यूएस:मारियाडीबी आरडीएस - किल:आप धागे के मालिक नहीं हैं
  • <छोटा>12/13/2016 AWS:RDS Aurora db.t2.medium vs t2.nano और MariaDB
  • <छोटा>09/03/2016 एडब्ल्यूएस:शहर RTFM, नंबर # 2:ручное создание инфраструктуры - AIM, S3, RDS और EBS

  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. मारियाडीबी CURRENT_TIMESTAMP () समझाया गया

  3. क्लस्टरकंट्रोल के साथ मारियाडीबी 10.3 को कैसे प्रबंधित करें

  4. मारियाडीबी में FROM_UNIXTIME () कैसे काम करता है

  5. कैसे CURDATE () मारियाडीबी में काम करता है