Chúng tôi có một ứng dụng PHP với AWS RDS MariaDB làm chương trình phụ trợ.
Trên phiên bản 10.0 được sử dụng trước đây, tất cả đều tốt, nhưng ngay sau khi chúng tôi nâng cấp lên MariaDB 10.2 - đã xảy ra lỗi trong quá trình kiểm tra:
PDOException:SQLSTATE [22001]:Dữ liệu chuỗi, bị cắt ngắn bên phải:1406 Dữ liệu quá dài cho cột ‘tên’ ở hàng 1 trong /data/projects/projectname/vendor/yiisoft/yii2/db/Command.php:1290
Giải pháp đầu tiên ở đây có thể là chỉ bằng cách thay đổi loại của cột từ VARCHAR
tới LONGTEXT
, như thế:
MariaDB [dbname]> ALTER TABLE table_name MODIFY column_name LONGTEXT;
Nhưng trong trường hợp hiện tại, đây không phải là cách đúng đắn.
Giải pháp
Kiểm tra sql_mode
trên MariaDB RDS cũ với 10.0:
MariaDB [(none)]> select @@sql_mode;
+------------+
| @@sql_mode |
+------------+
| |
+------------+
Và trên cái mới, với 10.2:
MariaDB [dbname]> select @@sql_mode;
+-------------------------------------------------------------------------------------------+
| @@sql_mode |
+-------------------------------------------------------------------------------------------+
| STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+-------------------------------------------------------------------------------------------+
Và xem xét Nhóm thông số được đính kèm với RDS mới:
Đây là những gì chúng ta cần ở đây - STRICT_TRANS_TABLES
:
Nếu không thể chèn giá trị như đã cho vào bảng giao dịch, hãy hủy bỏ câu lệnh.
Bây giờ, cần ghi đè mặc định “” STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION “:” Thành giá trị NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
:
Kết nối lại với bảng điều khiển MySQL và kiểm tra lại:
MariaDB [(none)]> select @@sql_mode;
+--------------------------------------------+
| @@sql_mode |
+--------------------------------------------+
| NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+
Đã xong.
Bài đăng tương tự
- 08/08/2019 AWS RDS:SQLSTATE [22001] - Dữ liệu quá dài cho cột в MariaDB 10.2
- 14/05/2019 AWS:MariaDB RDS - kill:Bạn không phải là chủ sở hữu của chuỗi
- 13/12/2016 AWS:RDS Aurora db.t2.medium so với t2.nano и MariaDB
- 09/03/2016 AWS:миграция RTFM, часть # 2:ручное создание инфраструктуры - AIM, S3, RDS и EBS