SET GLOBAL innodb_file_format='Barracuda'; SET GLOBAL innodb_file_per_table=on; set old_alter_table=0; CREATE TABLE bug53591(a text charset utf8 not null) ENGINE=InnoDB KEY_BLOCK_SIZE=1; ALTER TABLE bug53591 ADD PRIMARY KEY(a(220)); ERROR HY000: Too big row SHOW WARNINGS; Level Code Message Error 139 Too big row Error 1118 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. DROP TABLE bug53591; SET GLOBAL innodb_file_format=Antelope; SET GLOBAL innodb_file_per_table=0;