Mamy aplikację PHP z AWS RDS MariaDB jako zapleczem.
Na poprzednio używanej wersji 10.0 wszystko było dobrze, ale zaraz po aktualizacji do MariaDB 10.2 – pojawiły się błędy podczas testów:
PDOException:SQLSTATE[22001]:Ciąg danych, obcięty do prawej:1406 Dane za długie dla kolumny „name” w wierszu 1 w /data/projects/projectname/vendor/yiisoft/yii2/db/Command.php:1290
Pierwszym rozwiązaniem może być po prostu zmiana typu kolumny z VARCHAR
do LONGTEXT
, tak:
MariaDB [dbname]> ALTER TABLE table_name MODIFY column_name LONGTEXT;
Ale w tym przypadku nie będzie to właściwa droga.
Rozwiązanie
Sprawdź sql_mode
na starym MariaDB RDS z 10.0:
MariaDB [(none)]> select @@sql_mode;
+------------+
| @@sql_mode |
+------------+
| |
+------------+
A na nowym, z 10.2:
MariaDB [dbname]> select @@sql_mode;
+-------------------------------------------------------------------------------------------+
| @@sql_mode |
+-------------------------------------------------------------------------------------------+
| STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+-------------------------------------------------------------------------------------------+
I spójrz na grupę Parametry który jest dołączony do nowego RDS:
Oto, czego potrzebujemy tutaj — STRICT_TRANS_TABLES
:
Jeśli nie można wstawić wartości podanej w tabeli transakcyjnej, przerwij wyciąganie.
Teraz musisz zastąpić domyślny „”STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION „:” wartość na NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
:
Połącz się ponownie z konsolą MySQL i sprawdź ponownie:
MariaDB [(none)]> select @@sql_mode;
+--------------------------------------------+
| @@sql_mode |
+--------------------------------------------+
| NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+
Gotowe.
Podobne posty
- 08.08.2019 AWS RDS:SQLSTATE[22001] — zbyt długie dane dla kolumny â MariaDB 10.2
- 14.05.2019 AWS:MariaDB RDS – kill:Nie jesteś właścicielem wątku
- 13.12.2016 AWS:RDS Aurora db.t2.medium vs t2.nano i MariaDB
- 09.03.2016 AWS:migracja RTFM, część #2:dodatkowe informacje — AIM, S3, RDS i EBS