Temos um aplicativo PHP com o AWS RDS MariaDB como back-end.
Na versão 10.0 usada anteriormente estava tudo bem, mas logo após atualizarmos para o MariaDB 10.2 – obtivemos erros durante os testes:
PDOException:SQLSTATE[22001]:Dados de string, truncados à direita:1406 Dados muito longos para a coluna ‘name’ na linha 1 em /data/projects/projectname/vendor/yiisoft/yii2/db/Command.php:1290
A primeira solução aqui poderia ser apenas alterando o tipo da coluna do
VARCHAR
para o LONGTEXT
, Curtiu isso:MariaDB [dbname]> ALTER TABLE table_name MODIFY column_name LONGTEXT;
Mas neste caso atual, este não será o caminho certo.
A solução
Verifique
sql_mode
no antigo MariaDB RDS com o 10.0:MariaDB [(none)]> select @@sql_mode;
+------------+
| @@sql_mode |
+------------+
| |
+------------+
E no novo, com o 10.2:
MariaDB [dbname]> select @@sql_mode;
+-------------------------------------------------------------------------------------------+
| @@sql_mode |
+-------------------------------------------------------------------------------------------+
| STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+-------------------------------------------------------------------------------------------+
E dê uma olhada no grupo de parâmetros que está anexado ao novo RDS:
Aqui está o que precisamos aqui - o
STRICT_TRANS_TABLES
:
Se um valor não puder ser inserido conforme fornecido em uma tabela transacional, aborte a instrução.
Agora, é necessário substituir o padrão “”STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION “:” para o valor
NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
:Reconecte-se ao console MySQL e verifique novamente:
MariaDB [(none)]> select @@sql_mode;
+--------------------------------------------+
| @@sql_mode |
+--------------------------------------------+
| NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+
Feito.
Postagens semelhantes
- 08/08/2019 AWS RDS:SQLSTATE[22001] – Dados muito longos para a coluna в MariaDB 10.2
- 14/05/2019 AWS:MariaDB RDS – kill:Você não é o proprietário do encadeamento
- 13/12/2016 AWS:RDS Aurora db.t2.medium vs t2.nano e MariaDB
- 03/09/2016 AWS:миграция RTFM, часть #2:ручное создание инфраструктуры – AIM, S3, RDS e EBS