ずっと5.5環境で開発していて、5.6に移したら、
ERROR 1406 (22001): Data too long for column 'name' at row 1
などと、オーバーフローを知らせるエラーが。
調べてみると5.6から、Strict Modeの設定がされていて、チェックが文字通り厳格になったようである。
回避方法
その1:my.cnfをいじる
/etc/my.cnfを見てみると、
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
という記述がある。これを、
sql_mode=''
とすると無効になるらしい。MySQLの再起動を忘れずに。
その2:SQL文にIGNOREを入れる
条件が許せばこちらのほうが手軽か。
INSERT IGNORE INTO members(name) VALUES('hogehogehoge');
などとする。UPDATE IGNOREというのも使える。単に長さエラーだけでなく、その他の制約も無視できる。