हमारे पास बैकएंड के रूप में 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