Kami memiliki aplikasi PHP dengan AWS RDS MariaDB sebagai backend.
Pada versi 10.0 yang digunakan sebelumnya semuanya baik-baik saja, tetapi segera setelah kami meningkatkan ke MariaDB 10.2 – mendapat kesalahan selama pengujian:
PDOException:SQLSTATE[22001]:Data string, dipotong kanan:1406 Data terlalu panjang untuk kolom 'nama' pada baris 1 di /data/projects/projectname/vendor/yiisoft/yii2/db/Command.php:1290
Solusi pertama di sini bisa saja dengan mengubah jenis kolom dari VARCHAR
ke LONGTEXT
, seperti itu:
MariaDB [dbname]> ALTER TABLE table_name MODIFY column_name LONGTEXT;
Namun dalam kasus saat ini, ini bukan cara yang benar.
Solusinya
Centang sql_mode
pada MariaDB RDS lama dengan 10.0:
MariaDB [(none)]> select @@sql_mode;
+------------+
| @@sql_mode |
+------------+
| |
+------------+
Dan yang baru, dengan 10.2:
MariaDB [dbname]> select @@sql_mode;
+-------------------------------------------------------------------------------------------+
| @@sql_mode |
+-------------------------------------------------------------------------------------------+
| STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+-------------------------------------------------------------------------------------------+
Dan lihat Grup parameter yang dilampirkan ke RDS baru:
Inilah yang kita butuhkan di sini – STRICT_TRANS_TABLES
:
Jika suatu nilai tidak dapat dimasukkan seperti yang diberikan ke dalam tabel transaksional, batalkan pernyataan tersebut.
Sekarang, perlu menimpa default “”STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION nilai “:” ke NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
:
Hubungkan kembali ke konsol MySQL, dan periksa lagi:
MariaDB [(none)]> select @@sql_mode;
+--------------------------------------------+
| @@sql_mode |
+--------------------------------------------+
| NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+
Selesai.
Pos serupa
- 08/08/2019 AWS RDS:SQLSTATE[22001] – Data terlalu panjang untuk kolom MariaDB 10.2
- 14/05/2019 AWS:MariaDB RDS – kill:Anda bukan pemilik utas
- 13/12/2016 AWS:RDS Aurora db.t2.medium vs t2.nano MariaDB
- 09/03/2016 AWS:а RTFM, а #2:ое оздание аструктуры – AIM, S3, RDS EBS