0

We're getting this error when trying to create new fields on a large site. One of the suggested fixes is to set innodb strict mode to off.

The hosting company say they can't do this for us and we don't have access to the mysql config files as far as I can see.

Is there way to set this in EE itself?

We've tried adding:

$this->EE->db->query('SET @@SESSION.innodb_strict_mode = 'OFF'');

to mysqli_connection.php

but that just seems to crash the site

1 Answer 1

1

It would help to know what version of EE you are using - good practice is to include this along with details of your php environment in your question; different versions of EE have different characteristics, so knowing this info helps you get a good answer sooner.

The 'row size too large' error is often associated with EE2's exp_channel_data table getting too wide; there is a limit on how wide a table can be in MySQL and in EE2 all the site variables are stored as columns in the same table - when you have too many site variables MySQL runs out of column space and EE throws errors.

There are some options to reduce the amount of space MySQL uses to store the table, but since they involve changing the structure of the table they may later lead to operational problems.

A better solution is to think about restructuring the variables you use - deleting any that you no longer need is a good start. If you cannot delete any, have a think about converting some to grid fields - grid fields store their data in a different way (the data is stored in tables separate from exp_channel_data and so moving variables to grid fields can reduce pressure on the size of the channel-data table).

An even better solution would be to upgrade the EE installation to a newer version of EE - I think EE3 and onwards (it might be EE4)stores variables in a different way (similar to how grid fields work) and eliminates the table size problem completely. EE2 updates sometimes cause problems (mostly due to the need to also update add-ons) but the new one-click updater does make the process a lot less problematic than it used to be.

HTH

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.