Hướng dẫn xử lý lỗi Row size too large (8126) khi import database

  • Saturday 30/07/2022

Trong quá trình import/restore cở sở dữ liệu mysql lớn đôi khi gặp lỗi này:

ERROR 1118 (42000): Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline .

Thông báo này chỉ ra rằng định nghĩa của bảng cho phép các hàng sử dụng InnoDB của bảng không thể lưu trữ do quá lớn. Thông báo này sẽ đưa ra trong 1 số trường hợp sau:

  • Khi InnoDB strict mode được enable và nếu câu lệnh DDL được thực thi đụng vào bảng chẳng hạn như CREATE TABLE hay ALTER TABLE , thì InnoDB sẽ phát sinh lỗi với thông báo này
  • Khi InnoDB strict mode đang disabled và nếu câu lệnh DDL được thực thi đụng vào bảng chẳng hạn như CREATE TABLE hay ALTER TABLE , thì InnoDB sẽ phát sinh lỗi với thông báo này
  • Bất kể khi InnoDB strict mode đang enable hay disable thì nếu một câu lệnh DML được thực thi cố gắng ghi một hàng mà định dạng hàng InnoDB của bảng không thể lưu trữ, thì InnoDB sẽ phát sinh lỗi với thông báo này.

Nguyên nhân chính là InnoDB có kích thước hàng tối đa gần tương đương với một nửa giá trị của biến hệ thống  innodb_page_size 

Xử lý lỗi Row size too large

SSH vào sever có thể tham khảo bài viết hướng dẫn dùng putty tại đây

Vô hiệu/Disable InnoDB strict mode:

mở file cấu hình mysql lên tại /etc/my.cnf

Thêm 2 dòng:

innodb_strict_mode = 0

Sau đó restart lại dịch vụ mysql để nhận cấu hình  và import lại

Nếu vẫn chưa được có thể set thêm size log inodb lên và restart lại thử lại

innodb_log_file_size = 512M

 

P.A Việt Nam cung cấp đa dạng các Plan Hosting đáp ứng yêu cầu của khách hàng
Hosting Phổ Thông
Hosting Chất Lượng Cao

Tham khảo các ưu đãi: https://www.pavietnam.vn/vn/tin-khuyen-mai/

 

 

 

5/5 - (1 bình chọn)