for a last few days i have been migrating db schema's from single node mysql 5.1 to percona xtradb cluster
and on some db's we have table that were build in MyISAM engine so during this migration i rebuild the tables with engine=innodb
on one such occasion i got the following error
$ mysql -u user -p db < db.sql
Enter password:
ERROR 1118 (42000) at line 3723: 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 futher reading it looks like if i change the
innodb_file_format= Barracuda in the my.cnf file
and table ROW_FORMAT=COMPRESSED in the db.sql file for that particular table then the import goes thru fine
My question is am i missing out something if i change the file format to Barracuda and why isn't it the default format on mysql 5.5? plus are there any dangers for corruptions or crashes?
when i changed the file format and restart the db i see
mysql> show variables like '%innodb_file%';
+--------------------------+------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------+
| innodb_file_format | Barracuda |
| innodb_file_format_check | ON |
| innodb_file_format_max | Antelope |
| innodb_file_per_table | ON |
+--------------------------+------------------------------+
do i need to change innodb_file_format_max? too