MySQL插入单行数据较大时报Row size too large错误 解决方案

cloudgamer 阅读:60 2022-09-27 15:24:04 评论:0

mysql 版本 5.5

向目的MySQL写入数据时,单行数据较大,遇到插入失败,报错信息如下:
Error 'Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.' on query. ......

解决:

1. 先查看

show GLOBAL VARIABLES LIKE '%file_format%';  
+--------------------------+----------+ 
| Variable_name            | Value | +--------------------------+----------+ | innodb_file_format | Antelope | | innodb_file_format_check | ON | | innodb_file_format_max | Antelope | +--------------------------+----------+

mysql> show variables like '%per_table%'; +-----------------------+-------+ | Variable_name | Value | +-----------------------+-------+ | innodb_file_per_table | OFF | +-----------------------+-------+ 1 row in set (0.03 sec)


2. 修改参数: my.cf中在[mysqld] 加入

innodb_file_format = Barracuda 
innodb_file_per_table = 1 

    检查修改后的结果:

mysql> show variables like '%per_table%'; +-----------------------+-------+ | Variable_name | Value | +-----------------------+-------+ | innodb_file_per_table | ON | +-----------------------+-------+ 1 row in set (0.00 sec) mysql> show GLOBAL VARIABLES LIKE '%file_format%'; +--------------------------+-----------+ | Variable_name | Value | +--------------------------+-----------+ | innodb_file_format | Barracuda | | innodb_file_format_check | ON | | innodb_file_format_max | Barracuda | +--------------------------+-----------+ 3 rows in set (0.00 sec)

3. 修改表

Alter table <table_name> engine=innodb ROW_FORMAT=DYNAMIC;



本文参考链接:https://www.cnblogs.com/youjianjiangnan/p/12859897.html
标签:mysql
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

搜索
关注我们

一个IT知识分享的公众号