MySQL data too long error One of the column in my table was initially created as a varchar(1000). Now there is a need to increase the size of that column to hold around 5000 characters. I used the alter statement to increase the size of that column. 

DESC table_name as well as SHOW CREATE TABLE table_name clearly indicates the new size of that column to be 5000 characters. However, interestingly when I try to insert any data exceeding 1000 characters ERROR 1406 (22001) : Data too long for column error shows up. 

Out of desperation I changed the datatype to text, and still it's limited to 1000 characters. Any suggestion?

I created an other dummy table with a column size of varchar(5000) and that works just fine. 

Engine used is InnoDB and Default Charset is UTF8.
I had what appeared to be exactly the same problem.  I had a column that was VARCHAR(30), and I used ALTER TABLE myTable MODIFY COLUMN myColumn VARCHAR(60) NOT NULL, to double its size.  But I kept getting "Error Code: 1406 Data too long for column 'myColumn' at row 1" whenever I tried to insert a value that was > 30 characters.  It seemed, somehow, that mySQL had some "memory" of the previous column size, and was still enforcing it, even though INFORMATION_SCHEMA.COLUMNS showed the column's character_maximum_length as the new value, 60.  I was convinced it was a mySQL bug.

I eventually discovered the actual problem was that this particular table had a trigger on it, whose purpose was to maintain an audit trail of changes, by populating a similarly-defined myTableHistory table.  I had forgotten to do an ALTER TABLE myTableHistory to increase the size of the same column in that table.