MySQL: Row size too large (> 8126)
This is a very tough question to answer simply because you are going beyond InnoDB current limits.

Your question is not by any means unique. This has been addressed here before


By Me, Aug 14, 2012 : error 1118: row size too large. utf8 innodb
By Bill Karwin, Oct 06, 2011 : InnoDB create table error: &quot;Row size too large&quot;


I would also look into the character set you are currently using.

Bill Karwin said it best in his last paragraph


  I also have to comment that I've never seen a well-designed table exceed the row size limit. It's a strong "code smell" that you're violating the repeating groups condition of First Normal Form.


You are going to have to define a better design. No business reason can ever justify it. Why?

Back on July 20, 2011, I answered this question: Too many columns in MySQL

I personally eyewitnessed this


  In my earlier days as a developer, I worked at a company back in 1995 where DB2 was the main RDBMS. The company had a single table that had 270 columns, dozens of indexes, and had performance issues retrieving data. They contacted IBM and had consultants look over the architecture of their system, including this one monolithic table. The company was told "If you do not normalize this table in the next 2 years, DB2 will fail on queries doing Stage2 Processing (any queries requiring sorting on non-indexed columns)." This was told to a multi-trillion dollar company, to normalize a 270 column table. How much more so a 2000 column table.


A table with 300 TEXT columns is asking for same kind of trouble.

SUMMARY : Bill Karwin said it before and I agree: REDESIGN THE TABLE. That will circvumvent the row length issue for sure.