Cymon Cymon - 9 months ago 50
Linux Question

MySQL "Error Code: 1118. Row size too large (> 8126)"

I have two installs of MySQL. One is on my local Linux laptop and the other is on our Development Linux server. Both installs are the same version (mysql Ver 14.14 Distrib 5.6.23). When I run a create statement for a table on my local install it completes successfully. When I try to run that same create on the server it fails with the following error:

Error Code: 1118. 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.

Obviously the two installs have different my.cnf configurations and hardware specs to back them. Are there any my.cnf specific settings that affect the row size limit or how it is calculated? I tried altering the "innodb-log-file-size" setting but it didn't have any affect on the error. I would rather not chunk my table into multiple tables if at all possible.

Answer Source

The most common cause of this issue being different between servers is character set or innodb_log_file_size.

See previous answers here: Change limit for "Mysql Row size too large"