Yesterday I updated an in-house server’s MySQL version from 5.5 to 5.6 and ran into what seemed to be a ton of new problems, but it was all due to a new default MySQL configuration setting. If you’ve just upgraded and you’re getting lots of errors about default values and invalid value types (empty strings for integer fields, etc.), it’s probably the same issue. MySQL 5.6 defaults to more strict data handling for InnoDB (and other transactional) tables.

It would obviously be better to fix the errors, but if you’re working with a lot of old scripts and need a quick temporay fix, try editing your database configuration file (my.cnf) to change this:

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

…to:

sql_mode=NO_ENGINE_SUBSTITUTION

For more information, see: http://dev.mysql.com/doc/refman/5.0/en/sql-mode.html#sql-mode-strict