I came across this little gem when trying to add content to my newly create Drupal content type. I had just created a new content type and was adding some content of that type to make sure everything was working ok. The content type in question had around 25 fields or so, which was a combination of text areas and image fields.
It turns out that INNODB can't take more than 8000 bytes per row. This also doesn't appear to be something that you can increase. I don't know what the reasoning for it is, maybe it's too hard on the transactional setup if you give it too much data at one time.
Anyhow! The solution? Change the engine for that table :) I'm using mySQL WorkBench at the moment so all I did was:
- Open a connection to the server
- Connect to the database (click the Database menu, the click Query Database)
- Right-click the problem table, click "Alter Table"
- in the engine drop-down, select MyISAM.
That's it! The content type works again :)